我有一张桌子"用户"其中一个是" USERNAME"。我试图通过比较所有用户名找出用户名的最大长度。我需要这个最大值用于另一个查询。我试过了 SELECT max(length(users.username)),用户名FROM Users group by username;返回所有行。
示例:
塔拉
Amyamyse
汤米
约翰
我想得到如下结果:
8 Amyamyse
- 提前谢谢。
答案 0 :(得分:4)
另一种选择:
select username, length(username) as username_length
from users
where length(username) = (select max(length(username)) from users)
如果用户名最长,则会返回多个用户。如果您有打破平局的具体规则,请更新您的问题。
答案 1 :(得分:3)
避免大量使用功能的另一种可能性:
SELECT
username
, length(username)
FROM
users
GROUP BY
username
ORDER BY
length(username) desc
LIMIT 1;
答案 2 :(得分:1)
您将使用子查询,因为如果您使用HAVING
子句,group by将阻止所需的结果
SELECT name, LENGTH(name)
FROM your_table
WHERE LENGTH(name)=( SELECT MAX(length(name)) FROM your_table)
GROUP BY name
另外,您可以在此sqlfiddler上测试答案 http://sqlfiddle.com/#!15/c0ff8/5