2011-12-07 8 views
0

公開されたインデックスがこのクエリで無視される理由を知っていますか?MySQL無視される場所

SELECT news.id, news.slug, news.title, news.created_on FROM (news) 
WHERE `published` = '1' 
AND news.title LIKE '%running%' 
OR news.body LIKE '%running%' 
OR news.intro LIKE '%running%' 
ORDER BY created_on desc 
+0

あなたのテーブル構造を投稿することができます:このように

? – smp7d

+1

最適化に影響するかどうかはわかりませんが、クエリロジック(および知覚される望ましい結果)は、 "OR'd"句の前後にかっこが必要なように見えます。 –

答えて

6

私はORがそれを引き起こしていると思います。 OR接続されている3つのステートメントのまわりでかっこを試してください。

SELECT news.id, news.slug, news.title, news.created_on FROM (news) 
WHERE `published` = '1' 
AND (
    news.title LIKE '%running%' 
    OR news.body LIKE '%running%' 
    OR news.intro LIKE '%running%' 
) 
ORDER BY created_on desc 
関連する問題