1

这里有张桌子:

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

包括小提琴。

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

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

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

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

结果将2103。但是 MySQL 只返回2,第二个和其他值不能用 IN 运算符和字符串搜索。

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

4

1 回答 1

2

试试这个兄弟

SELECT * FROM `n_dummy` WHERE concat(',',`values`,',') LIKE concat('%',',',`id`,',','%')
于 2016-09-14T03:14:35.373 回答