gpt4 book ai didi

MySQL INSTR - 匹配精确子串

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:59 24 4
gpt4 key购买 nike

我有一个表,其中有一列以下面的方式存储数据。

|  column1       |
+----------------+
| [112,114] |
| [112,115] |
| [112,114] |
| [] |
| [112] |
| [] |
| [116] |
| [114,115,116] |

我希望能够选择该表的记录,其中一条记录可能有 1 个或多个存储在 column1 的字符串中的逗号分隔数字。

WHERE FIND_IN_SET('114', column1)
OR FIND_IN_SET('112', column1)

在这里不起作用。


INSTR(d.villa_collections, "114") > 0

有效,但如果是的话也会给我结果

INSTR(d.villa_collections, "11") > 0

我应该如何以一种有效的方式来匹配所需的记录?

最佳答案

好吧,你可以使用 REGEXP:

WHERE column1 REGEXP '[[:<:]]123[[:>:]]'

如果前后有单词边界,则匹配123。

SELECT '[112,114]' REGEXP '[[:<:]]112[[:>:]]'; -- 1
SELECT '[112,114]' REGEXP '[[:<:]]11[[:>:]]'; -- 0
SELECT '[112]' REGEXP '[[:<:]]112[[:>:]]'; -- 1
SELECT '[11]' REGEXP '[[:<:]]112[[:>:]]'; -- 0

关于MySQL INSTR - 匹配精确子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53445647/

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