为什么 ORDER BY 'iddesc' 不返回语法错误?



我测试了一些明显错误的代码,确信它应该返回语法错误。但事实并非如此。以下查询工作时没有错误(尽管也没有对表进行排序,这至少符合我的期望(:

SELECT * FROM dummy ORDER BY 'id' 'desc';

有趣的是,

SELECT * FROM dummy ORDER BY id 'desc';

确实产生语法错误。

MySQL如何解释ORDER BY之后的两个字符串?这些绳子是干什么用的?这是MCVE

SELECT * FROM dummy ORDER BY 'id' 'desc';

评估为

SELECT * FROM dummy ORDER BY 'iddesc';

即ORDER BY是一个(常量(字符串文字,它根本不会影响ORDER BY。

注意:这是ANSI/ISO SQL标准,一个字符文字可以由几个部分组成,而不需要显式连接。

最新更新