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
第一列是要在 values
列的字符串中搜索的整数。
注意:示例过于简单,看起来很愚蠢。重构 table 结构不是办法。仅 sql 使用标准函数和过程进行查询。
我想在字符串中搜索整数值,由整数与 ,
分隔符连接而成。
我希望 MySQL 使用 IN
运算符来执行此操作:
SELECT 编号
来自 n_dummy
其中 id IN(values
);
结果将是 2
、10
和 3
。但是 MySQL returns 仅 2
,第二个值和其他值无法使用带有字符串的 IN 运算符搜索。
如何使用 sql-查询和预构建例程在串联字符串中搜索整数?
试试这个兄弟
SELECT * FROM `n_dummy` WHERE concat(',',`values`,',') LIKE concat('%',',',`id`,',','%')
有个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
第一列是要在 values
列的字符串中搜索的整数。
注意:示例过于简单,看起来很愚蠢。重构 table 结构不是办法。仅 sql 使用标准函数和过程进行查询。
我想在字符串中搜索整数值,由整数与 ,
分隔符连接而成。
我希望 MySQL 使用 IN
运算符来执行此操作:
SELECT 编号
来自 n_dummy
其中 id IN(values
);
结果将是 2
、10
和 3
。但是 MySQL returns 仅 2
,第二个值和其他值无法使用带有字符串的 IN 运算符搜索。
如何使用 sql-查询和预构建例程在串联字符串中搜索整数?
试试这个兄弟
SELECT * FROM `n_dummy` WHERE concat(',',`values`,',') LIKE concat('%',',',`id`,',','%')