MySQL如何像1个数字



我有这样的记录:

Number
1, 2
1, 24

如何通过LIKE只选择2而不是2和24

SELECT * FROM test WHERE number LIKE '%2%'

1,2//只需要这个记录

1, 24

应该避免这样存储非规范化的CSV数据。话虽如此,如果你必须继续,这里有一个方法:

SELECT * 
FROM test
WHERE CONCAT(' ', number, ' ') LIKE '% 2 %';

find_in_setalmost做你想要的,但你必须删除空格才能使用它:

SELECT * 
FROM   test
WHERE  FIND_IN_SET('2', REPLACE(number, ' ', '')) > 0

您可以这样做:

SELECT `number`
FROM `test` 
WHERE TRIM(SUBSTRING_INDEX(`number`, ',', -1)) = 2 or TRIM(SUBSTRING_INDEX(`number`, ',', 1)) = 2;

SUBSTRING_INDEX拆分数字,TRIM删除任何空格,然后我们搜索到数字的两个部分。

最新更新