以下兩個查詢給出了完全不同的結果的原因是什麼?什麼使反引號和撇號之間有很大區別?
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