以下两个查询为什么结果差别很大?
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)
我在谷歌上找了一些 backticks 和撇号(也称作单引号)之间区别的解释,但是我没有找到任何关于为什么它们在像上面那样的列名中被解释成不同方式的迹象。
难道后者查询中的单引号字符串实际上并没有被解释成列名,而只是一个任意的字符串字面量,其中可以说有“1”吗?如果是这样的话,很难找到任何阐述这种撇号含义的页面。