mysql - 行未按 group by 正确排序

标签 mysql

SELECT userid,SUBSTRING_INDEX(SUBSTRING_INDEX(data, '\"!', -1), '!\"', 1)+0 AS num 
FROM table
WHERE type=2
ORDER BY num DESC LIMIT 5

这会获取 !x! 之间的数字在一个字符串中并尝试返回数字并按该数字对行进行排序。它工作正常。

但是,我不知道如何返回唯一用户 ID。

添加 ORDER BY userid 返回不按 num 排序的行:

SELECT userid,SUBSTRING_INDEX(SUBSTRING_INDEX(data, '\"!', -1), '!\"', 1)+0 AS num 
FROM table
WHERE type=2
GROUP BY userid
ORDER BY num DESC LIMIT 5

Distinct 也不起作用:

SELECT DISTINCT(userid),SUBSTRING_INDEX(SUBSTRING_INDEX(data, '\"!', -1), '!\"', 1)+0 AS num 
FROM table
WHERE type=2
ORDER BY num DESC LIMIT 5

我没有想法..

例子:

id    userid     data
1       56       !100!
2       22       !90!
3       56       !200!

结果应该是:

userid      num
56          200
22          90

最佳答案

SELECT userid,MAX(num) num FROM
(SELECT userid,SUBSTRING_INDEX(SUBSTRING_INDEX(data, '\"!', -1), '!\"', 1)+0 AS num  
FROM table 
WHERE type=2) A
GROUP BY userid;

关于mysql - 行未按 group by 正确排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9021440/

相关文章:

mysql - 为什么不合并或 isnull 处理左连接的结果?

来自查询的 mysqldump

php - 如何从表单中的空字段中获取空值?

C++ 在 Mysql 中将自定义对象存储为 blob

mysql - 使用一个 SQL 更新多行

PHP LaravelMerge 数据到单个数组

mysql - 根据总和排序

java - MySQL > java.sql.SQLException : Plugin '*765C23FCC8127A2234DBCFB6E5207D82ED86264E' is not loaded

PHP在数据库中保存数组并丢失数据

PHP PDO Select 查询不从数据库中选择行