2012-10-07 18 views
-1

此查詢的工作:=查詢失敗,你如何同時使用=和=在同一個where語句

SELECT stock_number 
FROM t2d_vehicles 
WHERE stock_number = '02929A' 
AND dealer_id = 130128 

這一個不:

SELECT stock_number 
FROM t2d_vehicles 
WHERE stock_number = '02929A' 
AND dealer_id = 130128 
AND feed_id != 9 

我無法合併=與一個=在哪裏?

下面是表的簡單一點:

"stock_number","dealer_id","feed_id" 
"02929A",130128,9 
"02929A",130128,10 
+1

它應該工作,應該沒有記錄 –

+1

你需要更具體;你的查詢語法沒有問題,所以你需要告訴我們你的意思是「不工作」。 –

+0

樣本數據中存在錯誤。兩行應顯示相同的經銷商ID。 – chuck

回答

0

在MySQL !=應該可以正常工作,但實際上在標準SQL的首選語法是<>。根據MySQL manual這兩個運營商應該做同樣的事情。

+0

查詢返回沒有結果,它應該返回一行。 – chuck

+0

@chuck:如果它*返回零行,幾乎肯定是因爲它*應該*返回零行。問題很可能是你認爲它應該返回一行,而實際上它不應該。解決辦法是**停止思考**。而不是試圖理解*爲什麼*它返回零行。做一些實驗。原因幾乎可以肯定是一些微不足道和明顯的事情,但是你忽略了它,因爲你認爲這個錯誤是在MySQL中,當你的頭腦中或者你輸入數據庫的數據中有錯誤時。 –

0

您是否嘗試過使用NOT?

SELECT stock_number FROM t2d_vehicles WHERE stock_number = '02929A' AND dealer_id = 130128 AND(NOT FEED_ID = 9)

0

feed_id如果是NULLfeed_id != 9將是true

試試這個:

... 
AND (feed_id != 9 OR feed_id IS NULL) 

在SQL中,NULL既不是平等的,也不是不相等的,艾米特定值。

相關問題