我有以下表(id, Tag)
具有以下值其中A = 1且A = 2返回0行的問題 - (短Mysql的問題)
(1, 17)
(1, 31)
(2, 17)
(3, 31)
當我查詢的以下
"SELECT id FROM table WHERE 1 AND Tag=17 AND Tag=31"
我預計它會返回(id)
(1)
但它沒有。 (返回0行)
這裏有什麼問題?
我有以下表(id, Tag)
具有以下值其中A = 1且A = 2返回0行的問題 - (短Mysql的問題)
(1, 17)
(1, 31)
(2, 17)
(3, 31)
當我查詢的以下
"SELECT id FROM table WHERE 1 AND Tag=17 AND Tag=31"
我預計它會返回(id)
(1)
但它沒有。 (返回0行)
這裏有什麼問題?
您所要求的一排標籤爲17和31的值...在同一時間。你可能想這(另外,WHERE 1
是不需要的):
SELECT DISTINCT id FROM table WHERE Tag=17 OR Tag=31
編輯:閱讀一些其他的答案後,我決定去瘋狂與此有關。
SELECT A.id
FROM table A JOIN table B ON A.id = B.id
WHERE A.Tag=17 AND B.Tag=31;
機器是邏輯,做你要求他們做的事......你的期望在這種情況下是錯誤的。
標籤17 AND標籤31根據boolean math的條件應同時滿足以產生結果。
'Tag'不能同時是'17'和'31'。 – 2011-05-04 21:04:17