2013-05-18 74 views
0

下面的sql查詢工作正常,我不知道什麼錯我停止了抓取記錄。sql查詢有什麼問題

$data = mysql_query("SELECT * FROM product_table where pid=$saa1 OR gpid=$saa1 OR  
category_id=$saa1 ORDER BY autoid desc limit $no2,20") 
or die(mysql_error()); 

當我刪除條款的作品精細例如

$data = mysql_query("SELECT * FROM product_table ORDER BY autoid desc limit 
$no2,20") 
or die(mysql_error()); 

請看看,讓我知道我在做什麼錯....

問候,

+2

我懷疑第二部作品。 –

+0

o對不起,這裏不應該在這裏... –

+0

在mysql中執行上述查詢時實際得到的是什麼 –

回答

-1

Try:

$data = mysql_query("SELECT * FROM product_table where (pid=$saa1 OR gpid=$saa1 OR  
category_id=$saa1) ORDER BY autoid desc limit $no2,20") 
or die(mysql_error()); 
+0

爲什麼會有幫助? – Drew

+0

在語法上,這隔離了WHERE子句中的OR語句。我會在SQL Server中使用這樣的東西。我認爲這裏是一樣的。你試過查詢嗎?它能爲您提供幫助嗎? –

+0

你正在做的是爲你的視覺效益,因爲它沒有做任何改變他寫的結果。它就像包裝「(一個t2.id = t1.id)」一樣的條款。它不會幫助dbengine,它以他的風格幫助程序員。他的問題是沒有匹配,並且意識到他的確做了許多愚蠢的問題......他們不會回來並發表意見。順便說一句,我沒有downvote你我不這樣做:>所以也許我會upvote你! – Drew

0

看起來,您的查詢是可以的,但是當您使用WHERE子句時,您會限制結果,因此可能沒有要顯示的記錄,特別是當您使用LIMIT開始偏移量和結果數時。

+0

這不是特別因爲限制0,200。這是因爲沒有什麼id 643 – Drew

+0

我不知道有關限制0,200。如果是的話,那麼你提到的是真的。謝謝 – Amir

+0

偉大的分頁 – Drew

0

您的查詢結果是OK,但是沒有記錄可以滿足您的where部分。去你的數據庫並用你的標準創建一些新的行。