gpt4 book ai didi

java - MySQL 中的 REGEXP 返回不需要的值

转载 作者:行者123 更新时间:2023-11-29 03:46:54 24 4
gpt4 key购买 nike

我在 Mysql 中使用 REGEX 时遇到问题

我在数据库中有这样的 oid 值

id -> 值

1.3.6.1.4.1 -> 值 a

1.3.6.1.4.1.2499.1.1.2.1.1.1.1.1 -> 值 b

1.3.6.1.4.1.2499 -> 值 c

我的目标是1. 使用我放入 sql 语句的特定 oid 获取单个 oid 和值2.如果没有具体值则将oid编号逐个反转,直到找到最新的值

例如如果我使用 [select id from tablename where '1.3.6.1.4.1.2499.1.1.2.1.1.1.1.1' REGEXP oid] 它应该只返回 1.3.6.1.4.1.2499.1.1.2.1.1.1.1.1 但 上面的 sql 将返回所有结果

如果我使用 [select id from tablename where '1.3.6.1.4.1.24999999.5' REGEXP oid] 它应该只返回 1.3.6.1.4.1 但它返回 1.3.6.1.4.1 和 1.3.6.1.4.1.2499

如果我使用 select id from tablename where '1.3.6.1.4.1.2499.1.1.2.1.1.1.1.100' REGEXP oid 它应该只返回 1.3.6.1.4.1.2499 但它返回所有 ID

我对这个 REGEXP 不是很熟悉。谁能帮我解决这个问题。谢谢

最佳答案

对于 MySQL,您应该使用字段 REGEXP 值,如下所示:

select id from tablename where oid REGEXP '1.3.6.1.4.1.2499.1.1.2.1.1.1.1.1'

. 必须用\
转义要匹配整行,请使用 ^$:

select id from tablename where oid REGEXP '^1\.3\.6\.1\.4\.1\.2499\.1\.1\.2\.1\.1\.1\.1\.1$'

我不明白你为什么要使用 REGEXP 可以通过 LIKE 进行选择,因为你没有通过正则表达式进行搜索。

关于java - MySQL 中的 REGEXP 返回不需要的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3107762/

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