2017-12-14 11 views
0

내가이를 변환 할 WHERE 변환하는 방법 :IN의 정규식에 여러 값을 가진 절 또는처럼

이 같은 것으로
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 색인 생성은 고려해야 할 사항이지만이 예에서 도움이 될만한 것은 없습니다.