为什么 ORDER BY 'id' 'desc' return 不是语法错误?

Why doesn't ORDER BY 'id' 'desc' return a syntax error?

我正在测试一些明显错误的代码,并且非常确定它应该 return 是语法错误。但它没有。以下查询没有错误(尽管也没有对 table 进行排序, 这至少符合我的期望):

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/ISOSQL标准,字符文字可以由多个部分组成,无需显式连接。