2011-01-14 4 views
0

MySQL 필드의 CSV 문자열에서 해당 숫자가 포함 된 숫자 (예 : "18"또는 "81")를 찾지 못하는 이유는 무엇입니까? 예를 들어CSV 번호를 찾기위한 MySQL Regexp

:

  1. csvString1 somecolumn에서 = 8,14,18 나는 # 1이 필요하고 2 somecolumn = 4,5,8,13
  2. csvString2

18,81,82,88 = somecolumn에 와서 csvString2에

  • true 및 # 3은 false입니다. 어떻게해야합니까 그

    SELECT * FROM sometable WHERE somecolumn REGEXP '(what here?)';

  • 답변

    3

    사용 find_in_set

    select find_in_set('8', '18,81,82,88'); 
    --> zero 
    
    select find_in_set('8', '8,14,18'); 
    --> 1 
    
    select find_in_set('8', '4,5,8,13'); 
    --> 3 
    

    그래서,

    select * from your_table 
    where find_in_set('8', your_col)<>0; 
    

    PS : 더 나은 미래 문제를

    +0

    한 방법을 피하기 위해 데이터를 정상화 정규식보다 솔루션 –

    +0

    동일하지 않음 (같지 않음, 같지 않음) – ajreal