根据字母a-z的组选择三个值

时间:2013-02-13 05:33:32

标签: php mysql performance

我有一张名为' user'其中包含名为' id',' name'。

的字段

我需要从每个字母表中选择三个名称并将其显示为页面,因此总结果将为26 * 3 = 78。

我使用PHP完成了这项工作,我需要优化查询,我们可以在单个查询中完成此操作吗?

2 个答案:

答案 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