您的查詢看起來不錯,但我發現身邊奇數場的報價。
的原則是正確的 - 在SELECT語句中,你可以只用比較一個領域到另一個值!=
或=
也許有一些四捨五入發生,或其他問題的精度是否意味着價值你看起來一樣,但不完全相同?你沒有提到字段類型 - 是否有可能它們是相似的,但不是等價的浮點數,或者在選擇它們時舍入到更低的精度?
還要小心NULL值,因爲它們不像您所期望的那樣使用數字比較。
我剛剛在本地運行這個測試代碼,它的一切都如你所期望的那樣工作。注意我使用了固定的數字精度。
mysql> create table testit (number int, description text, Bronze numeric(10,5), Silver numeric(10,5), Gold numeric(10,5), Platinum numeric(10,5));
Query OK, 0 rows affected (0.07 sec)
mysql> insert into testit values (441,'UK Local/National',1.2 ,0.893,0.7, null) ;
Query OK, 1 row affected (0.16 sec)
mysql> select * from testit;
+--------+---------------------+---------+---------+---------+----------+
| number | description | Bronze | Silver | Gold | Platinum |
+--------+---------------------+---------+---------+---------+----------+
| 441 | UK Local/National | 1.20000 | 0.89300 | 0.70000 | NULL |
+--------+---------------------+---------+---------+---------+----------+
1 row in set (0.00 sec)
mysql> SELECT * FROM testit WHERE Gold != Bronze AND Silver != Bronze;
+--------+---------------------+---------+---------+---------+----------+
| number | description | Bronze | Silver | Gold | Platinum |
+--------+---------------------+---------+---------+---------+----------+
| 441 | UK Local/National | 1.20000 | 0.89300 | 0.70000 | NULL |
+--------+---------------------+---------+---------+---------+----------+
1 row in set (0.00 sec)
來源
2014-11-08 13:54:39
cms
創建一個SQLFiddle請說明問題。 – CBroe 2014-11-08 13:29:55
按照Begueradj的建議,你也可以看到這個鏈接的最後一個例子,以獲得它的想法http://dev.mysql.com/doc/refman/5.1/en/row-subqueries.html – 2014-11-08 13:46:01