Mysql 选择所有与字符串中的数字匹配的内容

标签 mysql sql database wildcard

假设我的表格列包含以下 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还包含号码 12 .

我的问题是如何选择数字 1 的所有行和2包含在字符串中,但不包含在 2-3 位数字中。我希望它严格匹配 12

最佳答案

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/

相关文章:

mysql - 列表包含非聚合列 'otpallet_pokemonpalet.p.id'

mysql - Laravel - 数据库事务 - 超出锁定等待超时

mysql - 如何在名为分区的列上使用 MySQL 中的 ALTER TABLE

php - mysql查询中的多个连接

python - pyodbc问题下的更新声明

MYSQL错误代码: 1064 in the view

PHP MySql - 每个页面加载的最大查询数

r - 当行名在 R 中有 ñ 或重音符号时,如何从 csv 或 xlsx 文件导入数据?

sql-server - 自动化 (DevOps) 部署具有大型数据集的 SQL Server 数据库

C# 需要将 sql 中的数据放入 DataGridView 并按行的日期排序