私はVARCHAR
のカラムにカンマ区切りの値が入っています。これらのコンマ区切りの値内の数字と一致するかどうかを知りたいですか?MySQLのカラム
のように、私は行だろう:
id | numbers
1 | 1,2,4,5
2 | 2,3,4,6
をそして私は、リスト内の2番ですべての行にマッチしたいと思います。
私はVARCHAR
のカラムにカンマ区切りの値が入っています。これらのコンマ区切りの値内の数字と一致するかどうかを知りたいですか?MySQLのカラム
のように、私は行だろう:
id | numbers
1 | 1,2,4,5
2 | 2,3,4,6
をそして私は、リスト内の2番ですべての行にマッチしたいと思います。
FIND_IN_SETの機能を見てください。データベース全体
SELECT *
FROM YourTable
WHERE FIND_IN_SET('2', numbers) <> 0
バージョンポータブルは次のようになります。
where numbers = '2'
or numbers like '2,%'
or numbers like '%,2,%'
or numbers like '%,2'
それは非常に効率的ではないのですが、ここで方法は次のとおりです。だから、基本的に私はちょうど `SELECT FIND_IN_SET(3、テストを行うことができます
SELECT *
FROM table
WHERE numbers LIKE '2,%'
OR numbers LIKE '%,2,%'
OR numbers LIKE '%,2'
OR numbers = '2';
.test)> 0 FROM test'? – Manhim
@ Manhimあなたの構文はちょっとです。私の答えのコードサンプルを見てみましょう。 –
'SELECT FIND_IN_SET( '3'、numbers)<> 0 FROM test'? – Manhim