mysql - 是否有一种性能友好的方法来列出数据库中每个字母的结果?

标签 mysql alphabet

我想创建一个索引页,其中包含字母表中每个字母的几个结果。

目前我有这个:

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/

相关文章:

mysql - 无法删除或更新父行 : a foreign key constraint fails Error

python - 有没有一种快速的方法可以在 Python 中生成字母表的字典?

javascript - 如何根据字母制作金字塔?

php - MYSQLi 错误 : User already has more than 'max_user_connections' active connections

javascript - 如何一次编辑无限数量的 mysql 行?

mysql - 将sql查询转换为 Eloquent

php - 无法使用 PHP 将 CSV 导入 MySQL

python - 选择仅包含字母字符的行

Python:按所选字母顺序对单词列表进行排序