在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不存在