我想创建一个索引页,其中包含字母表中每个字母的几个结果。
目前我有这个:
SELECT url_slug, name FROM artists WHERE name LIKE "A%" ORDER BY rand() LIMIT 10
SELECT url_slug, name FROM artists WHERE name LIKE "B%" ORDER BY rand() LIMIT 10
SELECT url_slug, name FROM artists WHERE name LIKE "C%" ORDER BY rand() LIMIT 10
SELECT url_slug, name FROM artists WHERE name LIKE "D%" ORDER BY rand() LIMIT 10
SELECT url_slug, name FROM artists WHERE name LIKE "E%" ORDER BY rand() LIMIT 10
SELECT url_slug, name FROM artists WHERE name LIKE "F%" ORDER BY rand() LIMIT 10
是否有另一种性能更友好的方法来实现这一目标?
P.s.我知道“order by rand()”不太好。但这还只是在开发中。
最佳答案
对于您想要达到的目的,查询并没有比 IMO 更好。然而,如果表很大,可能需要临时创建一个缓存表来单独保存固定字母的值。
建立索引,根据字段为您的记录建立索引。
关于mysql - 是否有一种性能友好的方法来列出数据库中每个字母的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10097931/