以下两个查询给出了完全不同的结果的原因是什么?什么使反引号和撇号之间有很大区别?
MariaDB [mydatabase]> SELECT COUNT(DISTINCT(`price`)) FROM `products`; --Good
+--------------------------+
| COUNT(DISTINCT(`price`)) |
+--------------------------+
| 2059 |
+--------------------------+
1 row in set (0.01 sec)
MariaDB [mydatabase]> SELECT COUNT(DISTINCT('price')) FROM `products`; --Bad
+--------------------------+
| COUNT(DISTINCT('price')) |
+--------------------------+
| 1 |
+--------------------------+
1 row in set (0.01 sec)
我为反引号和撇号之间的区别的解释一派左右(亦称单引号),但我无法找到任何指示,为什么他们会被不同的解释为列名状在上面。
是不是后一个查询中的单引号字符串实际上不会被解释为列名称,而只是一个可以说是“1”的任意字符串字面值?如果是这样的话,找到任何解释这个撇号含义的页面并不容易。
我看到这些网页没有任何迹象表明COUNT(DISTINCT)在一个字符串,这是真正全身心将返回1我离开,但无论如何感谢。 – 2015-04-12 21:23:13