在mysql查询中将数字视为零
如果你有这样的表格在mysql查询中将数字视为零,mysql,Mysql,如果你有这样的表格 id content 1 this five lenght is 12345 2 this five lenght is 23456 3 this six lenght is 234567 4 this six lenght is 238567 然后,当我想选择和分组的内容,这将导致 SELECT * FROM table GROUP BY content
id content
1 this five lenght is 12345
2 this five lenght is 23456
3 this six lenght is 234567
4 this six lenght is 238567
然后,当我想选择和分组的内容,这将导致
SELECT * FROM table GROUP BY content
1 this five lenght is 00000
3 this six lenght is 000000
有没有一种方法可以实现这一点,在mysql查询中用零替换数字
非常感谢 您可以尝试使用
REGEXP\u REPLACE()
函数-它可以在mysql 8+版本上运行
SELECT id, REGEXP_REPLACE (content,'[0-9]', '0') as content
FROM tablename GROUP BY REGEXP_REPLACE (content,'[0-9]', '0')
将数字替换为零,然后将其分组 更换示例:
Select REGEXP_REPLACE('Stackoverflow 2456','[0-9]','0')
Stackoverflow 0000
就你而言:
SELECT REGEXP_REPLACE(CONTENT, '[0-9]','0') FROM TABLENAME GROUP BY REGEXP_REPLACE(CONTENT, '[0-9]','0')
注意,这可能会进行完整的表扫描,因此在大型表上会非常慢。您的mysql版本是什么?我们总是更新内容,我认为我们有新版本。等等,我将检查| innodb|U版本| 5.7.23 |协议| U版本| 10 |从类型|转换| | tls| U版本| TLSv1.1 |版本| 5.7.23-0ubuntu0.16.04.1 |版本|注释|(Ubuntu)| |版本|编译|机器| x86 | |版本|编译|操作系统| Linux可能重复的确定,谢谢。我先查一下。如果行得通,我会回来的。感谢函数REGEXP\u REPLACE不起作用exist@klaudia,你的mysql版本是什么?| innodb|U版本| 5.7.23 |协议| U版本| 10 | |从类型|转换| | tls| U版本| TLSv1,TLSv1.1 |版本| 5.7.23-0ubuntu0.16.04.1 |版本|(Ubuntu)| | version | u compile | u machine | x86 | u 64 | | version | u compile | os | linux第二个示例(希望)会失败。函数REGEXP _REPLACE不存在