MySQL - 选择第一个字符是小写还是大写

jjj*_*jjj 6 mysql sql lowercase mariadb uppercase

对不起,如果这是之前问过的问题,但我无法找到答案。如何创建 MySQL select 语句以从数据库中选择所有首字符为小写或大写的字符串。

我通常会使用这样的方法从英文单词数据库中选择 10 个长度超过 8 个字符的随机单词:

SELECT word FROM en_dictionary WHERE CHAR_LENGTH(word)>8 ORDER BY RAND() LIMIT 10
Run Code Online (Sandbox Code Playgroud)

不幸的是,这也会在结果中选择我不想要的大写字母,因为它们通常是诸如城市名称、物种名称等的术语:

在此处输入图片说明

所以,我的问题是:有没有办法只选择以小写字母(或大写)开头的单词?

我可以做这样的事情并且它会起作用,但它会是一个非常丑陋的声明:

AND word LIKE BINARY 'a%' AND word LIKE BINARY 'b%' AND word LIKE BINARY 'c%'...
Run Code Online (Sandbox Code Playgroud)

Mad*_*iya 8

您可以使用Ascii()功能。它返回输入字符串最左边字符的数值。

对于小写首字符:ASCII 码a97z122。所以,第一个字符的 ASCII 码应该在 97 到 122 之间。

SELECT word 
FROM en_dictionary 
WHERE CHAR_LENGTH(word) > 8 
  AND ASCII(word) BETWEEN 97 AND 122
ORDER BY RAND() LIMIT 10
Run Code Online (Sandbox Code Playgroud)

大写首字符:ASCII码A65Z90。所以,第一个字符的 ASCII 码应该在 65 到 90 之间。

SELECT word 
FROM en_dictionary 
WHERE CHAR_LENGTH(word) > 8 
  AND ASCII(word) BETWEEN 65 AND 90
ORDER BY RAND() LIMIT 10
Run Code Online (Sandbox Code Playgroud)