假设我的表格列包含以下 2 个字符串行:
1, 5, 2, 31, 12, 1212, 111
21, 25, 32, 43, 112, 212, 311
我需要一个查询来选择包含数字 1
的行并包含号码 2
我的查询是:
SELECT *
FROM MyTable
WHERE My_String LIKE '%1%' AND My_String LIKE '%2%'
现在,当我希望它只返回第一行时,它会返回两行。
它选择第二行,因为数字 21, 25, 32, 112, 212, 311
还包含号码 1
和2
.
我的问题是如何选择数字 1
的所有行和2
包含在字符串中,但不包含在 2-3 位数字中。我希望它严格匹配 1
和2
最佳答案
http://www.sqlfiddle.com/#!2/b082d/5
select * from testtable
where instr(concat(', ', longstring, ', '), ', 2,') >0;
select * from testtable
where instr(concat(', ', longstring, ', '), ', 1,') >0
and instr(concat(', ', longstring, ', '), ', 2,') >0;
关于Mysql 选择所有与字符串中的数字匹配的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13544709/