在下面的SQL语句中,SQLite正确排序,但MySQL没有:

但是,如果我不包括字段名周围的引号,它就能正常工作:

如果一个字段是用引号定义的,任何人都能解释MySQL而不是SQLite不能正确排序的行为吗?
发布于 2012-07-04 17:13:25
"TotalOrders" (双引号)是一个常量的字符串排序,它不做任何事情.本质上,您可以得到未排序的行序列,这可能看起来是正确排序的。
你想要的
ORDER BY `TotalOrders`后背。它是列标识符。
发布于 2012-07-04 22:21:28
除了尤根的回答:
值得注意的是,这种行为取决于MySQL的配置。
所描述的行为仅显示MySQL是否处于默认的不符合标准的配置中。
如果将其配置为以"ANSI模式“运行,则双引号不是用于字符串文本,而是用于标识符(几乎与所有其他DBMS一样)。
解决此问题的另一个解决方案是通过将MySQL更改为"ANSI“,从而使SQL_MODE符合SQL_MODE标准。
然后,标准兼容单引号用于文字,双引号用于标识符。
https://stackoverflow.com/questions/11333145
复制相似问题