我有这样的记录:
Number 1, 2 1, 24
如何通过LIKE只选择2,而不是2和24
SELECT * FROM test WHERE number LIKE '%2%'
1、2//只需要此记录1、24
lsmepo6l1#
你应该避免像这样存储非标准化的CSV数据。也就是说,如果你必须继续,这里有一个方法:
SELECT * FROM test WHERE CONCAT(' ', number, ' ') LIKE '% 2 %';
aamkag612#
find_in_setalmost可以满足您的要求,但您必须删除空格才能使用它:
find_in_set
SELECT * FROM test WHERE FIND_IN_SET('2', REPLACE(number, ' ', '')) > 0
u0sqgete3#
您可以按以下步骤操作:
SELECT `number` FROM `test` WHERE TRIM(SUBSTRING_INDEX(`number`, ',', -1)) = 2 or TRIM(SUBSTRING_INDEX(`number`, ',', 1)) = 2;
SUBSTRING_INDEX来拆分数字,TRIM来删除任何空格,然后我们搜索数字的各个部分。
SUBSTRING_INDEX
TRIM
3条答案
按热度按时间lsmepo6l1#
你应该避免像这样存储非标准化的CSV数据。也就是说,如果你必须继续,这里有一个方法:
aamkag612#
find_in_set
almost可以满足您的要求,但您必须删除空格才能使用它:u0sqgete3#
您可以按以下步骤操作:
SUBSTRING_INDEX
来拆分数字,TRIM
来删除任何空格,然后我们搜索数字的各个部分。