以下两个查询产生截然不同的结果的原因是什么?
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)
我已经google了解反引号和撇号(又名单引号)之间的区别,但是我无法找到任何关于为什么它们会像上面那样对列名进行不同解释的指示.
是不是后一个查询中的单引号字符串实际上没有被解释为列名,而是作为一个任意的字符串文字,其中可以说是“1”?如果是这样的话,很难找到任何阐述撇号这个含义的页面.