2012-07-26 70 views
0

我有一個MySQL查詢拋出一個錯誤,我猜是因爲我明智地使用短語「NOT IN」的:的正確方法不使用在MySQL查詢

$sqlGetCountry = mysqli_query($link, "SELECT * FROM locations WHERE country='$country' AND CURTIME() > time AND '$state' NOT IN state ORDER BY time desc LIMIT 20"); 
$sqlNumCountry = mysqli_num_rows($sqlGetCountry); 

我有一個表與城市,州和國家,我基本上試圖找到一個給定的狀態(美元州,在這種情況下,可能是德克薩斯州,夏威夷等)不在結果中的查詢。我得到的錯誤:

mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given 

任何人都有線索?

+0

或者,你想找到不匹配'$ state'行?或者如果'$ state'在整個表中不存在? – 2012-07-26 18:56:07

+1

什麼是'國家'?它是一列嗎?一張桌子? – 2012-07-26 18:57:04

+0

現在我讀了5次你的問題,我想你會看到更多的樣本數據和期望的輸出 – 2012-07-26 19:00:06

回答

2

不能表傳遞給in,但你可以通過一個子查詢:

SELECT * 
FROM locations 
WHERE country='$country' 
     AND CURTIME() > time 
     AND '$state' NOT IN (select state from state) 
ORDER BY 
     time desc 
LIMIT 20 
+0

奇怪的是,我得到了同樣的結果。 – 2012-07-26 19:21:59

+0

在重讀這個問題時,也許你想要''$ state'<> state'?否則,它將有助於添加示例輸入和輸出,如@lc。提示。 – Andomar 2012-07-26 19:41:50

+0

你是男人@Andomar。 '$ state'<>狀態工作得很好。想要愛你的SQL大師! – 2012-07-26 20:31:16