我有一张表 customers,其中有一个字段“name”,其中包含从 a 到 z 的姓名记录。
我使用 asc 查询从 a 到 z 获取记录
SELECT * FROM `customers` ORDER BY name ASC
但是我怎样才能只用一个查询得到 5 条以所有 a 到 z 字母开头的记录呢?
输出:
一个
一个
一个
一个
一个
b
b
b
b
b 依此类推到 z。 提前致谢。
最佳答案
试试这个:
SELECT c.name
FROM (SELECT c.name, IF(@lastLetter=@lastLetter:=LEFT(c.name, 1), @cnt:=@cnt+1, @cnt:=0) letterCnt
FROM customers c, (SELECT @lastLetter:='', @cnt:=0) A
ORDER BY c.name ASC
) AS c
WHERE c.letterCnt < 5
关于mysql - 使用 Limit 从 a 到 z 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21234231/