gpt4 book ai didi

mysql - 带有正则表达式的 SQL Like 语句

转载 作者:行者123 更新时间:2023-11-29 07:59:23 24 4
gpt4 key购买 nike

我的表格包含一些用;分隔的数字的列,如下所示:

1;2;43;22;20;12

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

)

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

“从表中选择 *,其中 id LIKE '%”.$search_var."%'"

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

最佳答案

您可能不需要正则表达式

Set @YourNUmber := 110;

SELECT *
FROM Table
WHERE ';' + ids + ';' LIKE '%;'+ @yourNumber + ';%'

这保证了所有数字周围总是有 ;

这是针对 SQL Server 进行格式化的。如果您使用其他内容,变量语法和通配符可能会有所不同。

编辑:

感谢@FélixGagnon-Grenier 的建议。我认为这两个都会起作用。请参阅此处 SQL Fiddle example

SELECT * 
FROM T
WHERE concat(';',ids,';') LIKE concat('%;', @YourNumber , ';%');


SELECT *
FROM T
WHERE LOCATE(concat(';', @YourNumber , ';'),concat(';',ids,';'))>0

关于mysql - 带有正则表达式的 SQL Like 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24290705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com