1

我有一个名为“user”的表,其中包含名为“id”、“name”的字段。

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

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

4

2 回答 2

1


SELECT * FROM user WHERE name LIKE 'a%' LIMIT 0,3

如果那是您所要求的,请尝试使用我不知道。让我知道它是否解决了!:)

于 2013-02-13T07:49:10.207 回答
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
于 2013-02-13T09:42:56.323 回答