Mysql 带正则表达式的类SQL语句

Mysql 带正则表达式的类SQL语句,mysql,regex,sql-like,Mysql,Regex,Sql Like,我的表包含一些列,其中包含:-像这样分开的数字: 1;2.43;22;20;12 等等。也可能此列中只有1个数字,如110,或2个数字,如110;143 我想选择此列中包含特定数字的行。该数字位于变量$search\u var中。 假设我需要在我的列中搜索数字1。如果我使用select with like语句,如下所示: “从ID类似“%”的表中选择*。\u var.“%”“ 我得到的所有结果都包含“1”,而不仅仅是“1”,所以我还得到了11、14、110、1999等等。 我想我需要使用某种正则

我的表包含一些列,其中包含:-像这样分开的数字:

1;2.43;22;20;12

等等。也可能此列中只有1个数字,如
110
,或2个数字,如
110;143

我想选择此列中包含特定数字的行。该数字位于变量$search\u var中。 假设我需要在我的列中搜索数字1。如果我使用select with like语句,如下所示:

“从ID类似“%”的表中选择*。\u var.“%”“

我得到的所有结果都包含“1”,而不仅仅是“1”,所以我还得到了11、14、110、1999等等。
我想我需要使用某种正则表达式,但我在这里迷路了。。。谁能帮上忙?

您可能不需要正则表达式

Set @YourNUmber := 110;

SELECT * 
FROM Table 
WHERE ';' + ids + ';' LIKE '%;'+ @yourNumber + ';%'
这保证了始终存在
围绕所有数字

这是为SQL Server设置的格式。如果使用的是其他变量,则变量语法和通配符可能会有所不同

编辑:

感谢@FélixGagnon Grenier的建议。我想这两种方法都可以。在这里看一看


如果您使用的是SQL Server,请尝试此解决方案。这将搜索邻接字符不是数字的数字:

SELECT * FROM Table WHERE ids LIKE '%[^0-9]".$search_var."[^0-9]%'  

您使用的是什么数据库管理系统?SQL Server?PostgreSQL?神谕SQLite?MySQL?我在用MySQL,抱歉忘了提!什么RDBMS允许在LIKE子句中使用正则表达式?它们中的大多数都有单独的功能。此外,如果
Name
只是一个没有填充的数字,则示例将失败。请编辑表和列名。这适用于SQL Server。阅读这篇文章有没有关于如何将其转换为MySQL的帮助?我不知道MySQL是否能给出足够明确的答案。你可以在这里尝试答案,但它不是书面的吗?(好奇的是)
SET
=
之前不使用
,这是在使用
选择定义变量时使用的
@FélixGagnon-Grenier,那么应该是这样的吗?(已编辑)我上面评论中的示例使用了
:=
得到了它,这多亏了这个答案:
其中concat(“;”,Table“;”)与concat(“%;”,“$search_var.”,“;%”)类似
SELECT * FROM Table WHERE ids LIKE '%[^0-9]".$search_var."[^0-9]%'