2011-03-17 5 views
2

필드 중 하나에 쉼표로 구분 된 ID 목록이있는 테이블이 있습니다 (내 작업이 아님). LIKE를 사용하여이 문자열의 숫자와 일치시킬 수 있는지 알고 싶습니다. 문제는 비슷한 숫자를 얻고 싶지 않다는 것입니다. 어느 쪽에서도 숫자가없는 숫자와 일치하는 방법이 있습니까? 그런문자열의 숫자와 일치하는 sql

SELECT * FROM table WHERE activitiesids LIKE 6 

    | activitiesids | 
---+---------------+--- 
    | 3,16,8,6 | 
---+---------------+--- 
    |  6  | 
---+---------------+--- 
    |  7,560 | 
---+---------------+--- 

답변

2

테스트하지 않았하지만 당신은 이런 식으로 뭔가를 시도 할 수 있습니다 :

SELECT * FROM table WHERE activitiesids REGEXP '[[:<:]][0-9]+[[:>:]]'; 
+1

나는 이것을 좋아한다. :) – Cogicero

2

뭔가 :

WHERE ids LIKE '%,16,%' OR ids LIKE '%,16' OR ids LIKE '16,%'; 

PostgreSQL은도 패턴 매칭을 가지고 - 나는 mysql을 알고하지 않습니다

WHERE ids ~ '^(.*,)?16(,.*)?$'; 
관련 문제