mysql:'r'是什么意思?

时间:2011-04-04 22:23:23

标签: mysql sql

我一直在查看一些代码并在查询中反复看到字母“r”,我以前从未见过它。我不是mysql大师,在这种情况下无法在网上找到真正有意义的参考文献。

示例查询:

SELECT * FROM database.table r
WHERE column = 'whatever'
AND otherColumn = 'whenever'
ORDER BY id, name

5 个答案:

答案 0 :(得分:8)

这实际上意味着该表从其长格式别名到字母/符号'r'。

在你的情况下它是red herring,因为在查询的任何地方都没有使用'r'而且它不需要。您的查询不是使用别名的好例子,因为只涉及一个表。如果您连接多个表,则别名变得很方便(尽管不是必需的),以指定您在各种查询子句中引用的表的列。

您只需删除“r”并运行查询即可。

SELECT * FROM database.table r
WHERE column = 'whatever'
AND otherColumn = 'whenever'
ORDER BY id, name

或者直接使用它:(虽然这里多余)

SELECT * FROM database.table r
WHERE r.column = 'whatever'
AND r.otherColumn = 'whenever'
ORDER BY r.id, r.name
顺便说一下,这样的SQL代码是我倾向于使用关键字AS突出我是别名的事实的原因。所以FROM子句看起来像这样:FROM database.table AS r

就未使用的别名所做的事情而言,这是一个很好的问题。我猜它是从一些使用别名的旧查询中剪切,复制和粘贴的,但是当它变得不必要时,没有人费心去掉它。

答案 1 :(得分:4)

r是您可以为表格提供的别名。您可以稍后通过该别名引用表列,例如r.column1

答案 2 :(得分:4)

这是一个表别名。如果您正在连接两个具有重复列名的表,则可以通过说some_table.id来消除歧义歧义,表别名允许您只键入r.id。

答案 3 :(得分:4)

这是别名。这意味着:我们必须现在使用r代替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

答案 4 :(得分:1)

看起来像是一个表别名,省略了AS关键字。在示例查询中,别名是不必要的,因为只引用了一个表,并且从不使用别名。

table_reference的相关语法在MySQL documentation中指定为tbl_name [[AS] alias] [index_hint_list]