2012-01-04 15 views
1

私はVARCHARのカラムにカンマ区切りの値が入っています。これらのコンマ区切りの値内の数字と一致するかどうかを知りたいですか?MySQLのカラム

のように、私は行だろう:

id | numbers 
1 | 1,2,4,5 
2 | 2,3,4,6 

をそして私は、リスト内の2番ですべての行にマッチしたいと思います。

答えて

5

FIND_IN_SETの機能を見てください。データベース全体

SELECT * 
    FROM YourTable 
    WHERE FIND_IN_SET('2', numbers) <> 0 
+0

.test)> 0 FROM test'? – Manhim

+0

@ Manhimあなたの構文はちょっとです。私の答えのコードサンプルを見てみましょう。 –

+0

'SELECT FIND_IN_SET( '3'、numbers)<> 0 FROM test'? – Manhim

1

バージョンポータブルは次のようになります。

where numbers = '2' 
    or numbers like '2,%' 
    or numbers like '%,2,%' 
    or numbers like '%,2' 
1

それは非常に効率的ではないのですが、ここで方法は次のとおりです。だから、基本的に私はちょうど `SELECT FIND_IN_SET(3、テストを行うことができます

SELECT * 
FROM table 
WHERE numbers LIKE '2,%' 
    OR numbers LIKE '%,2,%' 
    OR numbers LIKE '%,2' 
    OR numbers = '2';