sql - SELECT FROM Table WHERE 不是部分的确切数字在字符串 SQL 中

标签 sql regex sql-like contains

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

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

例子:

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/

相关文章:

sql - "#"LIKE 模式字符在 Access 365 中的 SQL 中不起作用? Jet SQL 引擎中的新错误?

mysql - 通配符中的 SQL OR 语句

sql - ORA-00933: SQL 命令未正确结束

PHP 在区间内查找所有可能的日期组合

python - 如何在 python 中更改 glob 模块的内部排序系统

python - 在python中查找两个字符串的所有公共(public)连续子串

postgresql - 如何在不使用 LIKE 中的替换函数的情况下使用 PostgreSQL 进行转义

java - MyBatis 执行获取并基于返回值在 Xxxmapper.xml 中执行更新/插入?

javascript - 创建新页面

c# - C# 中的 RegEx 捕获组