Mysql 在连接的字符串中搜索

Mysql search in concatinated string

有个table:

CREATE TABLE n_dummy (
  id int(10) unsigned NOT NULL AUTO_INCREMENT,
  `values` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM;

INSERT INTO `n_dummy` (id, `values`) VALUES
(2, '2,10'),
(10, '2,10')
(3,  '7,3');

看起来像这样:

id | values
-----------
2  | 2,10
10 | 2,10
3  | 7,3

Fiddle included.

第一列是要在 values 列的字符串中搜索的整数。

注意:示例过于简单,看起来很愚蠢。重构 table 结构不是办法。仅 sql 使用标准函数和过程进行查询。

我想在字符串中搜索整数值,由整数与 , 分隔符连接而成。

我希望 MySQL 使用 IN 运算符来执行此操作: SELECT 编号 来自 n_dummy 其中 id IN(values);

结果将是 2103。但是 MySQL returns 仅 2,第二个值和其他值无法使用带有字符串的 IN 运算符搜索。

如何使用 sql-查询和预构建例程在串联字符串中搜索整数?

试试这个兄弟

SELECT * FROM `n_dummy` WHERE concat(',',`values`,',') LIKE concat('%',',',`id`,',','%')