2013-07-09 2 views
0

가능한 a,b,ccity 인 열이 있습니다.Mysql : 쉼표로 구분 된 목록에서 특정 문자를 찾으십시오.

하나 또는 대부분이 쉼표로 구분되어 각 행에 나타날 수 있습니다.

city이 아닌 c이 포함 된 모든 행을 검색하는 쿼리를 시도하고 있습니다.


나는 LIKE %c%LIKE c을 시도했다하지만 올바른 결과를 반환하지 않을 것입니다. 나는 Regexp를 바라보기 시작했는데 더 나은 해결책이 있어야만하는 것처럼 느껴진다.

이 문제에 대한 의견이 있으십니까?

+2

''%의 C %의 'LIKE를 AND NOT은'% 도시 %를'처럼? 그게 당신이 필요로하는 것을합니까? –

+0

그래서 '% c %'와 (과) 같이 '% city %' '와 (과) 비슷한 것을 원하십니까? –

+2

하지 마십시오. 데이터베이스를 표준화하면 쉼표로 구분 된 값은 거의 항상 반 패턴입니다. –

답변

1

쉼표로 구분 된 값 일치에 대한 사용 FIND_IN_SET :

select * from TableName where FIND_IN_SET("c", column) 
+2

열의 유형이 SET 인 경우 성능이 향상됩니다. –

+0

감사합니다. – Xavio

관련 문제