2011-10-02 90 views
0

是否有可能在MySQL查詢中的WHERE語句中存在OR,正如我在下面所做的那樣。你可以在MySQL查詢中的WHERE語句中有OR嗎?

$query = mysql_query("SELECT * FROM fields WHERE post_id=$id OR post_id="" order by id desc") or die(mysql_error()); 

這會在我的網站上運行時產生服務器錯誤。任何想法,我怎麼能做到這一點?

在此先感謝。

+0

ack,我不會在接下來20分鐘左右的計算機上,因此我將無法回答您的問題。 – codedude

+0

什麼是錯誤? –

+0

啊,原來這個錯誤是因爲雙引號的兩個實例。 – codedude

回答

-2

是什麼錯誤..這樣UR查詢是好的,但所有這些雙引號ü串的問題..嘗試這樣的事情..

$query = mysql_query("SELECT * FROM fields 
      WHERE post_id = " . $id . " OR post_id='' order by id desc") 
     or die(mysql_error()); 
+0

如果它的字符串類型像這樣,你可能需要在$ id周圍添加單引號。$ query = mysql_query(「SELECT * FROM fields WHERE post_id ='」。$ id。「'或post_id =''order by id desc 「)或死(mysql_error()); – Ash

+0

-1,因爲post_id不能同時是一個int和一個字符串。 – Johan

+0

@johan真的在我給了一個評論! – Ash

3

是的,你可以有一個或。什麼是post_id的類型?

如果POST_ID是字符類型:

"SELECT * FROM fields WHERE post_id='$id' OR post_id='' order by id desc" 

如果它是一個整數那麼它可以不等於空字符串。你的意思是​​?

+0

post_id將是一個整數。 – codedude

0

什麼錯誤?它看起來像你沒有逃過查詢中的雙引號。它應該是:

$query = mysql_query("SELECT * FROM fields WHERE post_id=$id OR post_id=\"\" order by id desc") or die(mysql_error()); 
+0

id是一個字符串,在這種情況下,兩個實例都需要引用,或者它是一個int,在這種情況下,引用兩個實例仍然是個好主意。但是這個代碼沒有意義,因爲int不能等於'「」'。 – Johan

+0

我應該使用單引號。我想我會做的是自動有post_id等於0,當它沒有一個值,而不是將它留空。這應該解決這個問題。 – codedude

+0

@codedude:爲什麼不使用NULL時沒有值?這是NULL的用途。 –

相關問題