2014-01-27 3 views
1

ProjectTab 열이 있고 해당 값 : 8,10,12,14 (varchar) - 여러 탭에 할당 할 수 있습니다. Where는 어디에서 ProjectTab = 10인지 검색 할 수있는 문장을 만들 수 있습니까? 나는이 시도했지만 작동하지 : 연산자처럼MySQL 쿼리 where where with varchar 필드

SELECT * FROM `ProjectTabs` 
WHERE ProjectTab IN (10) 

답이 아니다. 그것은 될 수 있지만 내 필드가 있어야합니다, 8,10,12,14, 그리고 운영자가 있어야합니다이 같은 ProjectTab처럼 '%, 10, %' 나는 이것이 빤다 생각 .. 제발, 도와주세요.

+0

당신을 위해이 일을합니까? SELECT * FROM'ProjectTabs' 어디 ProjectTab IN ('10', '12') – wruckie

+0

쉼표로 구분 된 목록을 관계형 데이터베이스로 이동하는 것은 좋지 않은 디자인이기 때문에 빨려들 것입니다. –

+0

데이터베이스 정규화를 조사해야합니다. 이것이 바로 당신이이 디자인 문제를 올바르게 다루는 방법입니다. –

답변

3

이 나쁜 디자인과 고려해야 할이 리팩토링이지만, MySQL은 FIND_IN_SET이 구멍에서 당신을 파고 것

SELECT * FROM `ProjectTabs` 
WHERE FIND_IN_SET('10', ProjectTab); 

sqlfiddle : http://sqlfiddle.com/#!2/045d1/1

+0

감사합니다. 괜찮습니다. 쉼표로 구분 된 목록은 잘못된 디자인이라는 것을 알고 있지만 그 프로젝트를 상속 받았으며 지금은 다른 것을 할 수 없습니다. 감사합니다. – Trayan