前提・実現したいこと
正規表現を使って、カンマ区切りのデータから、条件が一致したレコードを取得したいのですが上手くいきません。
レコードはこんな感じでデータベースに入っています。
no text
1 1
2 1,2,3
3 10,11
4 1,10,12
5 10,11,12
6 2
7 10
8 12
下記のsqlを使用しています。
SELECT * FROM master WHERE text REGEXP '(1)' を実行した時
1 1
2 1,2,3
3 10,11
4 1,10,12
5 10,11,12
7 10
8 12
が取得されます。
1が含まれるレコード全てが取得されます。
この時取得したいレコードは、1が含まれるレコード
1 1
2 1,2,3
4 1,10,12
です。
また、 2が含まれるレコード
2 1,2,3
6 2
が取得できるようにしたいです。
どのように実現したらいいでしょうか?
試したこと
① SELECT * FROM master WHERE text REGEXP '(1,)'
2 1,2,3
4 1,10,12
が取得できますが、
1 1
が抜けてしまいます。
② SELECT * FROM master WHERE text REGEXP '(1)' AND text NOT LIKE '%10%'
1 1
2 1,2,3
が取得できますが、
4 1,10,12
が抜けてしまいます。
補足情報(FW/ツールのバージョンなど)
mysql5.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/30 07:53