mysql - 对字符串列中的数字进行分组和比较

标签 mysql

我有一个 mysql 表,其中包含字母数字内容。该数字的格式准确为“/prop/xx/xxx”,因此我使用“子字符串”来提取它们。但我需要按描述对它们进行分组和排序。

enter image description here

所以我理想的代码是这样的

SELECT SUBSTRING(`page_url`,10,3) as pid from `prop_log` group by pid order by pid

我知道这段代码是不可能的,但是有什么建议吗?

PS。 page_url 中的数字可以是 4 位或更多

最佳答案

你没有聚合函数,所以你应该使用distinct而不是group by

 SELECT distinct SUBSTRING(`page_url`,-3) as pid 
  from `prop_log` 
  order by pid

如果您只需要带有数字的行

 SELECT distinct SUBSTRING(`page_url`,-3) as pid 
  from `prop_log` 
  WHERE `page_url` REGEXP '[0-9]'
  order by pid

以及行数

 SELECT SUBSTRING(`page_url`,-3) as pid 
  from `prop_log` 
  WHERE `page_url` REGEXP '[0-9]'
  group by SUBSTRING(`page_url`,-3)
  order by count(*)

关于mysql - 对字符串列中的数字进行分组和比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45518952/

相关文章:

mysql - SQL 查询 - 带条件的 Count(*)

mysql - 修复 MacPorts MySQL 的配置问题

php - 我使用哪个用户名/密码连接到 mySQL

mysql - 更新...选择自

mysql - 可以在 MySQL 中不使用定界符创建过程吗?

.net - 无法找到 MySQL + .net 的错误

php - 错误显示在 codeigniter 中插入多个选中的值

MySQL MyISAM 表文件现在太大

mysql - 如何在 SQL 中按日期对表进行排序

php - 使用 MySQL 数据库的 HTML\PHP 中的下拉菜单