在mysql查询中将数字视为零

mspsb9vt  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(234)

如果有这样的行表

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查询中用零代替数字?
非常感谢。

wvyml7n5

wvyml7n51#

将数字替换为零,然后分组。
更换示例:

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

小心,这可能会做一个完整的表扫描,所以在大表上会非常慢。

wztqucjr

wztqucjr2#

你可以试试 REGEXP_REPLACE() 函数-它将在mysql 8+版本上工作

SELECT id, REGEXP_REPLACE (content,'[0-9]', '0') as content
FROM tablename GROUP BY REGEXP_REPLACE (content,'[0-9]', '0')

相关问题