我一直在查看一些代码并在查询中反复看到字母'r',我以前从未见过它.我不是mysql大师,在这种情况下无法在网上找到真正有意义的参考资料.
示例查询:
SELECT * FROM database.table r WHERE column = 'whatever' AND otherColumn = 'whenever' ORDER BY id, name
这实际上意味着表格从其长格式别名到字母/符号'r'.
在你的情况下它是一个红色的鲱鱼,因为在查询的任何地方都没有使用'r'而且它不需要.您的查询不是使用别名的好例子,因为只涉及一个表.如果您连接多个表,则别名变得很方便(尽管不是必需的),以指定您在各种查询子句中引用的表的列.
您只需删除"r"并运行查询即可.
SELECT * FROM database.table r
WHERE column = 'whatever'
AND otherColumn = 'whenever'
ORDER BY id, name
Run Code Online (Sandbox Code Playgroud)
或者直接使用它:(尽管这里多余)
SELECT * FROM database.table r
WHERE r.column = 'whatever'
AND r.otherColumn = 'whenever'
ORDER BY r.id, r.name
Run Code Online (Sandbox Code Playgroud)
BTW,像这样的SQL代码是我倾向于使用关键字AS突出我是别名的事实的原因.所以FROM子句看起来像这样:FROM database.table AS r
至于未使用的别名正在做什么,这是一个很好的问题.我猜它是从一些使用别名的旧查询中剪切,复制和粘贴的,但是当它变得不必要时,没有人费心去除它.
这是一个别名。这意味着:我们必须使用rnow 而不是database.table。
我们可以使用,但只要没有歧义,r.column我们仍然可以使用。column
SELECT * FROM database.table r
WHERE r.column = 'whatever' --using the alias r
AND otherColumn = 'whenever' --not using it
ORDER BY id, r.name --mixing
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |