2010-01-14 46 views
0

我看遍了互聯網爲我的問題的答案爲什麼我的SQL語句返回false。我在mimer上檢查了sql驗證器,我得到的只是我使用了保留字的名稱。應該有東西在我的數據庫匹配該所以在這裏,它是:SQL查詢幫助(非常具體)

這裏是我創建的SQL語句:

$title = 'SELECT * FROM item, categories WHERE item.title 
LIKE "%'.implode('%" OR item.title LIKE "%', $data).'%"'.' 
AND categories.name = '.$category; 

這是結果:

SELECT * FROM item, categories WHERE item.title LIKE "%hello%" 
OR item.title LIKE "%world%" OR item.title 
LIKE "%Joomla%" OR item.title LIKE "%Animal%" AND categories.name = Book 
+0

雙引號的標識符,例如「項目」,「稱號」。單引號用於字符串文字,例如'%你好%'。 – jarlh 2015-10-16 11:48:12

回答

3

你應該可能想想你的(缺少)括號。我不知道你所要完成的具體是什麼,

但這:

SELECT 
    * 
FROM item, categories 
WHERE item.title LIKE "%hello%" 
OR item.title LIKE "%world%" 
OR item.title LIKE "%Joomla%" 
OR item.title LIKE "%Animal%" 
AND categories.name = "Book" 

是千差萬別從這個:

SELECT 
    * 
FROM item, categories 
WHERE (
    item.title LIKE "%hello%" 
    OR item.title LIKE "%world%" 
    OR item.title LIKE "%Joomla%" 
    OR item.title LIKE "%Animal%" 
) 
AND categories.name = "Book" 

此外,像其他人說,書應該是在引號中(就像我在這裏所做的那樣)。

AND categories.name = "Book" 
+0

優秀點。此外,你可能希望它是: categories.name ='書' – sdcoder 2010-01-14 00:53:00

+0

這仍然不會沒有報價周圍書工作。 – 2010-01-14 00:53:03

+0

謝謝,夥計們。我更新了我的答案。 – 2010-01-14 00:53:58

0

您需要用引號括住單詞Book

我打賭你還需要括號。

SELECT * FROM item, categories WHERE (item.title LIKE "%hello%" 
OR item.title LIKE "%world%" OR item.title 
LIKE "%Joomla%" OR item.title LIKE "%Animal%") AND categories.name = "Book" 
0

最後一部分categories.name是一個字符串嗎?如果是的話應該是

and categories.name = 'book' 

注意到周圍的書引號

+0

也使用@ gabriel的答案,因爲您需要圍繞OR的括號 – 2010-01-14 00:52:52