我有一个表格,其中包含一堆用逗号分隔的数字。
我想从表中检索行,其中字符串中包含确切数字而不是部分数字。
例子:
CREATE TABLE IF NOT EXISTS `teams` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`uids` text NOT NULL,
`islive` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ;
INSERT INTO `teams` (`id`, `name`, `uids`, `islive`) VALUES
(1, 'Test Team', '1,2,8', 1),
(3, 'Test Team 2', '14,18,19', 1),
(4, 'Another Team', '1,8,20,23', 1);
我想搜索字符串中 1 的位置。
目前,如果我使用 Contains 或 LIKE 它会带回所有带有 1 的行,但 18、19 等不是 1,而是其中有 1。
I have setup a sqlfiddle here
我需要做一个正则表达式吗?
最佳答案
您只需要 1 个条件:
select *
from teams
where concat(',', uids, ',') like '%,1,%'
关于sql - SELECT FROM Table WHERE 确切数字不是部分在字符串 SQL 中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54315208/