Я хочу преобразовать это:
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 тоже, я просто не знаю правильного синтаксиса для любого из них.
WHERE (a,b) IN ((1,2),...)
очень слабо оптимизировано.LIKE
предотвращают использование индекса.Таким образом, производительность в стороне, давайте посмотрим, как выполнить задачу:
WHERE ( songTitle LIKE '%come together%' AND artistName LIKE '%the beatles%')
OR ( .... )
OR ...
Извините, нет коротких путей.
REGEXP не может помочь в этом случае.
FULLTEXT
- это то, что нужно учитывать, но я не вижу, чтобы это помогло в этом примере.