问题描述
嗨,汤姆,
需要你的帮助!
请找到LiveSQL链接
提前谢谢!
我有一个仅带有s_desc列的表st_exp,用户可以选择按s_desc条件进行搜索。
场景: 用户可以在同一单个输入字段中输入类似和不喜欢的文本critiria。
我使用REGEXP_LIKE从查询中搜索。
以下示例数据 :( 包含所有记录)
场景1:
用户想要检索包含 “D8” 和 “存储” 的记录
查询1 :( 预期结果)
场景2:
用户想要检索包含 (如) 'd8' 和 'Store' 但不包含 (不像) 'Tester' 和 'QA' 的记录
查询2 :( 未预期结果)
预期有3条记录,但结果仅显示2条记录。
但是查询未检索到值 “NOK 8.0.1 D81SupiriorCoachStorePUJI”。
定义:
[^] 用于指定一个不匹配的列表,您试图匹配除列表中的字符以外的任何字符。
请指导我以获得进一步的准确结果。
谢谢和问候
可汗
印度
需要你的帮助!
请找到LiveSQL链接
提前谢谢!
我有一个仅带有s_desc列的表st_exp,用户可以选择按s_desc条件进行搜索。
场景: 用户可以在同一单个输入字段中输入类似和不喜欢的文本critiria。
我使用REGEXP_LIKE从查询中搜索。
以下示例数据 :( 包含所有记录)
select * from test_exp S_DESC ------ NOK D8StorePQRST NOK 8.0.1 D81SupiriorCoachStorePUJI NOK D81CoachStorePUJI NOK D81TesterCoachStorePUJI NOK D81RacketPUJI D81QACoachStorePUJI NOK D81QAPatchPUJI
场景1:
用户想要检索包含 “D8” 和 “存储” 的记录
查询1 :( 预期结果)
select s_desc from test_exp where REGEXP_LIKE(s_desc,'[D81]*(Store)') S_DESC ------- NOK D8StorePQRST NOK 8.0.1 D81SupiriorCoachStorePUJI NOK D81CoachStorePUJI NOK D81TesterCoachStorePUJI D81QACoachStorePUJI
场景2:
用户想要检索包含 (如) 'd8' 和 'Store' 但不包含 (不像) 'Tester' 和 'QA' 的记录
查询2 :( 未预期结果)
select s_desc from test_exp where REGEXP_LIKE(s_desc,'[D81][^(Tester|QA)]*(Store)') S_DESC -------- NOK D8StorePQRST NOK D81CoachStorePUJI
预期有3条记录,但结果仅显示2条记录。
但是查询未检索到值 “NOK 8.0.1 D81SupiriorCoachStorePUJI”。
定义:
[^] 用于指定一个不匹配的列表,您试图匹配除列表中的字符以外的任何字符。
请指导我以获得进一步的准确结果。
谢谢和问候
可汗
印度
专家解答
正则表达式没有做你认为它在做的...
表示匹配一个不在列表中的字符零次或多次。不是零个或多个精确字符串 “Tester” 或 “QA” 的实例。
类似地:
表示匹配D或8或1。
所以:
你有:
在第一个8 (第5个字符,在 “NOK 8” 的那个) 开始比赛。
然后匹配列表中没有的任何字符
(测试 | 质量保证)
这将使您达到:
8.0.1 d81sufi
“r” 在列表中。因此,正则表达式移动以查找下一个组,即字符串 “存储”。
"r" <> "商店" => 不匹配!
任何特定的原因,你需要正则表达式而不是标准 (不) 像?
[^(Tester|QA)]*
表示匹配一个不在列表中的字符零次或多次。不是零个或多个精确字符串 “Tester” 或 “QA” 的实例。
类似地:
[D81]
表示匹配D或8或1。
所以:
NOK 8.0.1 d81sufiriorCoachStorePUJI
你有:
在第一个8 (第5个字符,在 “NOK 8” 的那个) 开始比赛。
然后匹配列表中没有的任何字符
(测试 | 质量保证)
这将使您达到:
8.0.1 d81sufi
“r” 在列表中。因此,正则表达式移动以查找下一个组,即字符串 “存储”。
"r" <> "商店" => 不匹配!
任何特定的原因,你需要正则表达式而不是标准 (不) 像?
select s_desc from test_exp where s_desc like '%D8%Store%' and s_desc not like '%Tester%' and s_desc not like '%QA%'; S_DESC NOK 8.0.1 d81sufiriorCoachStorePUJI NOK D81CoachStorePUJI NOK D8StorePQRST
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




