首页 > 解决方案 > 在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查询中用零替换数字?

提前谢谢了。

标签: mysql

解决方案


用零替换数字,然后将它们分组。

替换示例:

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 扫描,因此在大型表上会非常慢。


推荐阅读