gpt4 book ai didi

Mysql RLIKE - 匹配字符串结尾或另一个字符

转载 作者:太空宇宙 更新时间:2023-11-03 12:30:27 28 4
gpt4 key购买 nike

我正在尝试使用 RLIKE 来匹配数据字符串后跟特定字符或字符串结尾 ($) 的位置。我仅使用字符串结尾字符 ($) 或仅使用预期字符,或者实际上是方括号内的任何一组预期字符来获得预期结果,但是一旦我进入方括号中的预期字符 OR 和结束字符串字符,不匹配行尾。

这是一个例子:

SQL 数据:

CREATE TABLE test_table (id int auto_increment primary key, search_string varchar(8));
INSERT INTO test_table (search_string) VALUES("123456789");
INSERT INTO test_table (search_string) VALUES("1234567");
INSERT INTO test_table (search_string) VALUES("123456");
INSERT INTO test_table (search_string) VALUES("12345");
INSERT INTO test_table (search_string) VALUES("12345E");

对此数据的示例查询:

SELECT count(*) FROM test_table WHERE search_string RLIKE "56[7]";
# the above returns fine - 2 rows (first and second)

SELECT count(*) FROM test_table WHERE search_string RLIKE "56[7YE]";
# the above returns fine - 2 rows (rows 2 and 5) as expected

SELECT count(*) FROM test_table WHERE search_String RLIKE "56$";
# the above returns fine - 1 rows (the third) as expected as 6 is followed by end of string

SELECT count(*) FROM test_table WHERE search_string RLIKE "56[7$]";
# the above returns only 1 row and should be 2 (rows 2 and 3 - '56' should be followed by a 7 or end of string)

方括号中的 $ 字符有特殊处理方式吗?

最佳答案

正则表达式可能只需要稍微调整一下。而不是 56[7$] 而不是你应该使用以下之一

56($|7)  
56($|[7YE])

在 [] 中,$ 试图匹配文字美元符号。您正在寻找 $ 来匹配行尾,因此它不能在方括号内。

关于Mysql RLIKE - 匹配字符串结尾或另一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661486/

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