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
1 this five lenght is 00000
3 this six lenght is 000000
有没有办法实现这一点,可以在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 扫描,因此在大型表上会非常慢。
推荐阅读
- json - 使用 geojsonhint 分析结果时,总是在第 1 行引发错误“1:1 错误解析错误:”类型“”
- python - 试图更改大型 csv 文件中的分隔符导致内存错误(python 3)
- angular - 如何将下拉描述从一个组件传递到另一个组件,在 Angular 6 中使用 Visual Studio Code
- java - 如何编译和运行 PApplet
- android - Gradle 无法解析生成的类
- javascript - 我在 C# winform 上使用 webBrowser 运行教程 html+js 页面,幻灯片页面还可以,但无法点击跳过页面调用 js 函数
- javascript - How to handle invalid routes from two files
- python - 芹菜任务返回结果给父任务
- android - 如果不调用 setRetainInstance(true),片段会被销毁吗?
- r - 尝试在 R 中安装软件包时遇到问题