我有一张名为' user'其中包含名为' id',' name'。
的字段我需要从每个字母表中选择三个名称并将其显示为页面,因此总结果将为26 * 3 = 78。
我使用PHP完成了这项工作,我需要优化查询,我们可以在单个查询中完成此操作吗?
答案 0 :(得分:1)
尝试使用
SELECT * FROM user WHERE name LIKE 'a%' LIMIT 0,3
如果这就是您的要求我不知道。 Lemme知道它是否解决了! :)
答案 1 :(得分:1)
请试试这个:
SELECT alphabet, name FROM (
SELECT
LEFT(name, 1) AS alphabet,
name,
@num := IF(@prev = LEFT(name, 1), @num + 1, 1) AS row_num,
@prev := LEFT(name, 1) as previous
FROM yourTable, (SELECT @num:=0, @prev:='') v
ORDER BY name
) sq
WHERE row_num <= 3