我正在尝试查询包含数字字符串的mysql表 (即'1,2,3,4,5')。
我如何搜索它是否有'1'而不是'11',如果它是'9,10''9%'不起作用?
固定!
(field like '10' OR field like '%,10,%' OR field like '%,10' OR field like '10,%')
答案 0 :(得分:2)
您可以尝试使用函数find_in_set
select find_in_set('1','1,2,3,11,12')
答案 1 :(得分:1)
您需要FIND_IN_SET功能。顺便说一下,'9%'应该有用,如果列包含你指定的值,你确定要查询
SELECT * FROM table WHERE field LIKE '9%'?
答案 2 :(得分:0)
标准SQL也可以这样做:
...
WHERE
',' + SetValue + ',' LIKE '%,1,%'
AND ',' + SetValue + ',' NOT LIKE '%,11,%'
此表达式无法使用索引,因此随着表格大小的增加,性能会迅速降低。
为了获得更好的性能,您的表格应该正确标准化,例如
SetId SetValue
1 1
1 2
1 3
1 4
1 5
而不是
SetId SetValue
1 '1,2,3,4,5'