在mysql查询中将数字视为零

时间:2018-10-16 04:25:03

标签: 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

    1       this five lenght is 00000
    3       this six lenght is 000000

有没有一种方法可以在mysql查询中将数字替换为零?

非常感谢。

2 个答案:

答案 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')