我有一个表格,其中包含一堆用逗号分隔的数字。

我想从表中检索行,其中字符串中包含确切数字而不是部分数字。

例子:

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/

10-14 13:13
查看更多