Php Mysql-如何搜索26条记录,每条记录都以字母表中的字母开头?

Php Mysql-如何搜索26条记录,每条记录都以字母表中的字母开头?,php,mysql,Php,Mysql,基本上,我正在尝试创建一个查询,可以根据英语字母表的字母(26个字母)从表中检索26个单词。所以“苹果、香蕉、椰子……”等等 我一直在使用“like a%”,因此: 从“word”中选择*,其中单词名称如“a%”限制为1——这给了我一个以“a”开头的单词 从“word”中选择*,其中word名称如“a%”或word名称如“b%”——这会给我多个以“a”或“b”开头的单词 从word中选择*,其中word\u name位于'a'和'e'之间-列出所有以a-e开头的单词。似乎更强大。从这里开始,我需

基本上,我正在尝试创建一个查询,可以根据英语字母表的字母(26个字母)从表中检索26个单词。所以“苹果、香蕉、椰子……”等等

我一直在使用“like a%”,因此:

从“word”中选择*,其中单词名称如“a%”限制为1
——这给了我一个以“a”开头的单词

从“word”中选择*,其中word名称如“a%”或word名称如“b%”
——这会给我多个以“a”或“b”开头的单词

word
中选择*,其中word\u name位于'a'和'e'之间
-列出所有以a-e开头的单词。似乎更强大。从这里开始,我需要知道如何将查询限制为每个字母只查找一个单词,总共查找26个单词,我尝试了以下方法:

SELECT DISTINCT word_name FROM `word` WHERE word_name BETWEEN 'a' AND 'z' limit 26;

SELECT DISTINCT word_name FROM `word` WHERE word_name like [a-z]% limit 26;

我觉得我的想法是对的,但这两个都不适合我。我熟悉php,所以我可以走很长的路,为每个字母创建一个查询,并将其放入数组,但是已经有mysql解决方案了吗?

如何
按每个单词的第一个字母分组

SELECT word_name FROM `word` GROUP BY SUBSTRING(word_name,0,1)
这应该行得通

SELECT DISTINCT LEFT(word_name, 1) as letter, word_name
FROM word
 GROUP BY (letter)
 ORDER BY letter

26与工会?(不,一定有更好的方法:0)嗨,谢谢你的回复。我尝试了你的查询,但它仍然给出了所有以a、b、c等开头的单词(因此,我得到的不是最多26个单词,而是1987个单词)。我想每个字母写一个字。是的,必须有更好的方法。这就是为什么我删除了,它在2而不是一列上是不同的。。。在moI对一些想法进行本地测试后,发现了一个相关的解决方案:确实如此!因此,基本上使用distinct left是正确的想法,获取第一个字母并使用别名,然后使用别名进行分组和排序。是否有方法获取每个字母的两个单词?通过使用“SELECT left(word_name,2)”修改第一个查询,可以返回具有前两个唯一字符的单词。谢谢,我没有想到使用“分组方式”。