6

次の値を含むテーブルがあります。

id    |    value      |
-----------------------
1     | 1,2,5,8,12,20 |    
2     | 11,25,26,28   |    
-----------------------

ここで、上記の値列から「1,3,6,7,11」などのコンマ区切りの ID を検索したい

SELECT id FROM tbl_name  
WHERE value REGEXP '*some reg exp goes here containing 1,3,6,7,11*'
LIMIT 1,0;

SELECT id FROM tbl_name  
WHERE value REGEXP '*some reg exp goes here containing 3,6,27,15*'
LIMIT 1,0;

上記の最初のクエリは 1 を返し、2 番目のクエリは NULL を返す必要があります

私は正規表現が初めてで、誰でも助けてくれます。ありがとう

4

1 に答える 1

16
REGEXP '(^|,)(1|3|6|7|11)(,|$)'

シーケンスの 1 つの数字を含むすべての値に一致します1,3,6,7,11

複数の値を保存するために 1 つの列を使用しないでください。データをノーマライズ!

編集された回答

于 2013-05-25T07:07:08.410 に答える