Mysql在concatinated字符串中搜索

时间:2016-09-14 02:45:15

标签: mysql where-in sql-in

有一张桌子:

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列的字符串中搜索的整数。

注意:示例过于简化,看起来很愚蠢。重构表结构不是这样的。只有带有标准函数和过程的sql查询。

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

我希望MySQL能够使用IN运算符执行此操作: SELECT id 来自n_dummy WHERE id IN(values);

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

如何使用sql-query和prebuild例程在连接字符串中搜索整数?

1 个答案:

答案 0 :(得分:2)

试试这个兄弟

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