2012-05-01 88 views
2

我很喜歡php和mysql,所以和我一起裸露。我有一個名爲item_name的列的數據庫。我試圖使用LIKE子句在我的item_name列中使用關鍵字將數據從我的數據庫中提取出來,但沒有返回任何內容。我的代碼在下面有什麼問題嗎?我嘗試過逗號和AND而不是OR,但仍然沒有結果。MYSQL LIKE子句什麼都不返回?

如果您需要任何其他信息,請讓我知道。 感謝

$sql = mysql_query("SELECT category, item_name, link, price, pic, retailer FROM products WHERE item_name LIKE ('%gtx%') OR ('%video%') OR ('%sound%') ORDER BY id DESC"); 

$query = ($sql) or die (mysql_error()); 

while ($result = mysql_fetch_array($query)) { 
+2

你需要重複列名稱和LIKE後OR據我所知 – Hajo

回答

2

你需要每個OR

SELECT category, item_name, link, price, pic, retailer 
FROM products 
WHERE item_name LIKE ('%gtx%') 
    OR item_name LIKE ('%video%') 
    OR item_name LIKE ('%sound%') 
ORDER BY id DESC 
+0

完美的作品!非常感謝! – myladeybugg

+0

如果有效,請務必通過左側的複選標記將其標記爲已接受的答案。 – Taryn

+0

謝謝!我想知道如何做到這一點 – myladeybugg

0

嘗試使用:
WHERE(ITEM_NAME '%GTX%' 或ITEM_NAME LIKE '%視頻%' 或ITEM_NAME LIKE '%的聲音%') 。我認爲這會運行。你在mysql界面中直接測試你的查詢嗎?

+0

工程!謝謝! – myladeybugg

0

你需要每個OR後加入LIKE後指定LIKE,所以SQL setence將是這樣的:

SELECT category, item_name, link, price, pic, retailer FROM products 
WHERE item_name LIKE ('%gtx%') 
     OR item_name LIKE ('%video%') 
     OR item_name LIKE ('%sound%') 
ORDER BY id DESC 

因爲在舊句子,沒有LIKE數據庫不理解('%video%')這個術語,就像是一個邏輯值。

+0

作品!謝謝! – myladeybugg

+0

如果它工作,然後選擇這個作爲接受的答案:) – Skatox

+0

謝謝你讓我知道! – myladeybugg