如果有这样的行表
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查询中将数字替换为零?
非常感谢。
答案 0 :(得分:1)
将数字替换为零,然后将其分组。
替换示例:
Select REGEXP_REPLACE('Stackoverflow 2456','[0-9]','0')
Stackoverflow 0000
https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=db93de9c1c965090f46b4dbb1f48a63e
在您的情况下:
SELECT REGEXP_REPLACE(CONTENT, '[0-9]','0') FROM TABLENAME GROUP BY REGEXP_REPLACE(CONTENT, '[0-9]','0')
请注意,这可能会执行完整的TABLE扫描,因此在大型表上会非常慢。
答案 1 :(得分:0)
您可以尝试使用REGEXP_REPLACE()
函数-它将在mysql 8+版本上运行
SELECT id, REGEXP_REPLACE (content,'[0-9]', '0') as content
FROM tablename GROUP BY REGEXP_REPLACE (content,'[0-9]', '0')