gpt4 book ai didi

mysql - 如何在 MySQL 中使用 REGEXP 提​​取仅包含 1 "="的行?

转载 作者:行者123 更新时间:2023-11-29 05:18:38 25 4
gpt4 key购买 nike

假设我有一个名为“t1”的表,其中包含一个名为“ID”的列,该列具有以下记录

abcde=1=2
qwert=3
hhhhj=9
zxcv=5=8

如何在MySQL中使用REGEXP提取只包含1个“=”符号的记录?

我试过了

SELECT * FROM t1 WHERE ID REGEXP '\\w*=\\w*=\\w*';  -- returns no records 
SELECT * FROM t1 WHERE ID REGEXP '\\w*=\\w*'; -- returns all 4 records

我希望第一个查询返回包含 2 个“=”的记录,而第二个查询返回仅包含 1 个“=”的记录。

我的查询有什么问题?

最佳答案

没有 REGEXP 的一个非常简单的解决方案是

select * from table
where
length(ID) - length(replace(ID,'=','')) = 1 ;

一些测试用例

mysql>  select length('qwert=3') - length(replace('qwert=3','=','')) as diff;
+------+
| diff |
+------+
| 1 |
+------+
1 row in set (0.00 sec)

mysql> select length('zxcv=5=8') - length(replace('zxcv=5=8','=','')) as diff;
+------+
| diff |
+------+
| 2 |
+------+
1 row in set (0.00 sec)

关于mysql - 如何在 MySQL 中使用 REGEXP 提​​取仅包含 1 "="的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29139126/

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