2011-01-11 4 views
3

회사 이름 목록이 있으며 특정 문자로 시작하는 모든 이름을 표시하려고합니다. 예 : d.MySQL이 LIKE 조건의 시작 부분에서 "The"를 무시하도록 하시겠습니까?

그래서 쿼리가

SELECT * FROM company WHERE name LIKE 'd%' 

입니다 그러나 나는 또한로 시작하는 회사는 ""그래서

SELECT * FROM company WHERE name LIKE 'd%' OR name LIKE 'The d%' 

그러나

이제 까다로운 비트 우리가 't'에 도착하면 내가 원하는에 원하는 'The'로 시작하는 사람은 모두 'The'로 시작하고 'The Truffle House'와 같은 단어는 ' '뒤에 ''으로 시작하는 't'로 시작하는 모든 단어를 지우십시오.

아이디어가 있으십니까? ... MySQL의에서 논리를 계속 하시겠습니까

답변

1
SELECT * 
FROM company 
WHERE (name LIKE '?%' AND NOT name LIKE 'The %') 
     OR name LIKE 'The ?%' 
+0

예를 들어 OP에서 방금 'd'를 사용하고 있었는지 확실히 알 수 있습니다. 그들은'd'와 약간 다른 논리가 적용되기를 원하는't'를 제외한 다른 모든 문자들에 대해 작동한다고 말합니다. –

+0

@Martin : 혼동을 피하기 위해 물음표로 바꾸십시오. – Quassnoi

+0

죄송합니다.이 답변은 훨씬 훌륭하고 깨끗합니다. –

1

시도 : 난 그냥했습니다 t

SELECT * 
FROM company 
WHERE (name LIKE '?%' AND NOT name LIKE 'The %') 
     OR name LIKE 'The ?%' 

에 대한 거부 한 답변

SELECT * FROM company WHERE name regexp '^(The)d' 
0

감사합니다 방금 NOT LIKE의 긴 목록을 작성했습니다.

AND (company_name LIKE 'The%t' OR company_name LIKE 't%') AND company_name NOT LIKE 'The a%' AND company_name NOT LIKE 'The b%' 등 ....

관련 문제