2012-06-20 64 views
0

我非常肯定這已被回答,但我似乎無法找到它。mysql OR請求只返回前半部分,但不返回第二個

我有一個mysql請求,它只返回前半部分的結果,而不是所有的數組。

sql= "SELECT filename, name, keywords FROM `pics` WHERE (keywords LIKE '%chair%' OR '%jeff%') ORDER BY date ASC"; 

$rows = $db->fetch_all_array($sql); 
foreach($rows as $i => $record){ 

所以如果我要運行上面的代碼,我得到的所有條目與他們chair但與jeff ...如果我周圍的切換他們做'%jeff%' OR '%chair%'我得到在他們jeff但不是所有條目與chair

我相信我缺少的是需要與OR但有些事我無法弄清楚

+1

關鍵字LIKE '%椅子%' 或關鍵字LIKE '%傑夫%' – 2012-06-20 23:38:16

回答

4

keywords LIKE '%chair%' OR keywords LIKE '%jeff%'

你需要或整個條件。

+0

你丫都是bloddy天才的 –

+0

@ChrisJamesChampeau ,不,我們只是知道如何閱讀手冊:-) – 2012-06-20 23:43:18

+0

這就是所謂的經驗。我們都是從那種沒有用的查詢開始的。 (任何說別的都在說謊的人。) – Robbie

1

你應該把「關鍵字LIKE '%傑夫%'

此之前, 」LIKE '%椅子%' 的關鍵字或者關鍵字LIKE '%傑夫%'「

1

你需要把在列名稱爲您要查找的每個項目。所以,在你的榜樣這應該工作:

$sql= "SELECT filename, name, keywords 
     FROM `pics` 
     WHERE (`keywords` LIKE '%chair%' OR `keyword`s LIKE '%jeff%') 
     ORDER BY date ASC"; 
1

用途:

WHERE (keywords LIKE '%chair%' OR keywords LIKE '%jeff%') 
相關問題