我有一个MySQL表,其中包含逗号分隔值,如下所示:
first row=(3,56,78,12)
second row=(6,44,2,3)
third row=(67,4,2,7,1)
fourth row=(88,55,22,33)
fifth row=(88,55,3,1,5)
我想选择其集合中3
的行。我怎么能这样做?
答案 0 :(得分:23)
尝试:
SELECT * FROM TABLE_NAME WHERE FIND_IN_SET( 3, COLUMN_NAME )
答案 1 :(得分:13)
像
这样的东西SELECT *
FROM Table
WHERE Field LIKE '3,%'
OR Field LIKE '%,3'
OR Field LIKE '%,3,%'
OR Field = '3'
答案 2 :(得分:3)
只使用Mysql函数FIND_IN_SET(str,strlist)
。
如果字符串str位于由N个子字符串组成的字符串列表strlist中,则返回1到N范围内的值。字符串列表是由用“,”字符分隔的子字符串组成的字符串。如果第一个参数是常量字符串而第二个参数是SET类型的列,则FIND_IN_SET()函数被优化为使用位算术。如果str不在strlist中,或者strlist是空字符串,则返回0。如果任一参数为NULL,则返回NULL。如果第一个参数包含逗号(“,”)字符,则此函数无法正常工作。
SELECT * FROM table_name WHERE FIND_IN_SET('3', column_name);
答案 3 :(得分:1)
使用此条件
WHERE firstrow LIKE '3,%'
OR firstrow like '%,3'
OR firstrow like '3'
答案 4 :(得分:1)
SELECT *
FROM Table
WHERE Field IN ($first_row)
OR Field IN ($second_row)
OR Field IN ($third_row)
OR Field IN ($fourth_row);
答案 5 :(得分:0)
您可以在查询中使用IN
语句。请尝试此操作。
SELECT *
FROM Table
WHERE Field IN ($first_row)
OR Field IN ($second_row)
OR Field IN ($third_row)
OR Field IN ($fourth_row);