我有一个名为“user”的表,其中包含名为“id”、“name”的字段。
我需要从每个字母表中选择三个名称并将其显示一页,因此总结果将是 26*3 = 78。
我已经使用 PHP 完成了此操作,我需要优化查询,我们可以在单个查询中完成此操作吗?
我有一个名为“user”的表,其中包含名为“id”、“name”的字段。
我需要从每个字母表中选择三个名称并将其显示一页,因此总结果将是 26*3 = 78。
我已经使用 PHP 完成了此操作,我需要优化查询,我们可以在单个查询中完成此操作吗?
SELECT * FROM user WHERE name LIKE 'a%' LIMIT 0,3
如果那是您所要求的,请尝试使用我不知道。让我知道它是否解决了!:)
请试试这个:
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