Mysql 未使用group by对行进行正确排序
这将拾取之间的数字!x!并尝试返回数字并按该数字对行进行排序。它很好用 但是,我不知道如何返回唯一的用户ID。 添加ORDER BY userid将返回不按num排序的行:Mysql 未使用group by对行进行正确排序,mysql,Mysql,这将拾取之间的数字!x!并尝试返回数字并按该数字对行进行排序。它很好用 但是,我不知道如何返回唯一的用户ID。 添加ORDER BY userid将返回不按num排序的行: SELECT userid,SUBSTRING_INDEX(SUBSTRING_INDEX(data, '\"!', -1), '!\"', 1)+0 AS num FROM table WHERE type=2 ORDER BY num DESC LIMIT 5 Distinct也不起作用: SELECT userid
SELECT userid,SUBSTRING_INDEX(SUBSTRING_INDEX(data, '\"!', -1), '!\"', 1)+0 AS num
FROM table
WHERE type=2
ORDER BY num DESC LIMIT 5
Distinct也不起作用:
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
我没有主意了
例如:
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!
每个用户ID是否有多个可能的结果?如果是这样,
DISTINCT
将无法满足您的需要。您选择为每个userid返回多条记录中的哪一条的标准是什么?有多行具有相同的userid,但不应返回两次userid。应返回具有最高num的唯一用户标识。@Michael在我的主要帖子中添加了示例。
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;