gpt4 book ai didi

mysql - 从数据库中的表中选择的正则表达式

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

问题:

我有一个这样的表:

A | B
-----------------------------------------
1 | 5,25,24,22,21,6,19,18,17,15,13,11
2 | 25,15,17,4,33,12,34,40,24,5,1,26,43,9
3 | 25,15,11,36,29

我需要选择 B 列中我的号码所在的行。

尝试:

我为此使用正则表达式。我写了这段代码:

SELECT *
FROM `table`
WHERE `B` REGEXP "([^\d]|^)MYNUMBER[^\d]

RLIKE

([^\d]|^)我的号码[^\d] :([^\d]|^) :不是数字或第一个字符。我的号码[^\d] :不是数字

MYNUMBER 为 25 或 34 或任何两位数时,我没有遇到任何问题。但是当 MYNUMBER 是 5 或 1 或任何一位数字时,就很麻烦了。

结果示例1:

输入:我的号码:24

结果:

A | B
-----------------------------------------
1 | 5,25,24,22,21,6,19,18,17,15,13,11

没关系。

结果示例2:

输入:我的号码:5

结果:

A | B
-----------------------------------------
1 | 5,25,24,22,21,6,19,18,17,15,13,11
2 | 25,15,17,4,33,12,34,40,24,5,1,26,43,9
3 | 25,15,11,36,29

错误答案,第 3 行错误。

很奇怪:

我在 regexr.com 中尝试了我的表达,这是真的。

最佳答案

MySQL 有一个用于此目的的函数:FIND_IN_SET()

http://dev.mysql.com/doc/refman/5.5/en/string-functions.html#function_find-in-set

从长远来看,您可能需要考虑将其标准化为两个表......

关于mysql - 从数据库中的表中选择的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27434311/

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