など

2017-12-14 8 views
0

私は、この変換したい:このような何かになど

SELECT id,songTitle,artistName, trackId 
FROM songs 
WHERE (songTitle, artistName) IN (('come together', 'the beatles'),('all the small things', 'blink-182')) 

を私は右の構文を知らない:

SELECT id,songTitle,artistName, trackId 
FROM songs 
WHERE (songTitle, artistName) IN LIKE (('%come together%', '%the beatles%'),('%all the small things%', '%blink-182%')) 

私は一度に100曲以上の曲を検索しています。私たちはREGEXPを使うこともできます。私はどちらかの正しい構文を知らないだけです。

答えて

1
  • WHERE (a,b) IN ((1,2), ...)は非常に最適化されていません。
  • 先頭のワイルドカードをLIKEにすると、インデックスを使用できなくなります。
  • 試行した構成を実行することはできません。

ので、脇のパフォーマンス、のタスクを実行する方法を見てみましょう:

WHERE (songTitle LIKE '%come together%' AND artistName LIKE '%the beatles%') 
    OR (....) 
    OR ... 

申し訳ありませんが、近道はありません。

REGEXPはの場合はです。

FULLTEXTインデックス作成は考慮する必要がありますが、この例では役立つとは思われません。