SELECT FROM Table WHERE 不部分的确切数字位于字符串 SQL 中

Rob*_*ert 4 regex mysql sql contains sql-like

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

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

例子:

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);
Run Code Online (Sandbox Code Playgroud)

我想搜索 1 在字符串中的位置。

目前,如果我使用 Contains 或 LIKE,它会返回所有带有 1 的行,但 18、19 等不是 1,但其中确实有 1。

我在这里设置了一个sqlfiddle

我需要做正则表达式吗?

for*_*pas 5

你只需要1个条件:

select *
from teams
where concat(',', uids, ',') like '%,1,%'
Run Code Online (Sandbox Code Playgroud)