MYSQL 检测希腊语中的大写字母

MYSQL detecting uppercase in Greek

在古希腊单词的 MySQL 数据库中(在 utf8mb4_unicode_ci 中整理)我试图检测哪些单词以大写字母开头,在这种情况下将值 1 添加到字段包括.我尝试了几种使用二进制的选项,例如

UPDATE word
SET include = 1
WHERE LEFT(`lemma`, 1) REGEXP BINARY '[Α-Ω]'

但也可以使用 UPPER 等其他解决方案 None。有什么想法吗?

REGEXP 仅适用于字节,因此它在非英文字母上是命中或未命中。

MariaDB 10.0.5 有 "pcre",所以它可以处理 utf8 正则表达式。

Α-Ω 是十六进制CE91-CEA9.

WHERE HEX(lemma) REGEXP '^CE'

将检查是否以希腊字母开头。 (它会捕获所有 ΄΅Ά·ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξο。)

要限制为仅大写字母,Α-Ω(如您所要求):

WHERE HEX(LEFT(lemma, 1)) BETWEEN 'CE91' AND 'CEA9'

当我在做的时候,这会检查 lemma 中的 anywhere:

中的希腊语 anywhere
WHERE HEX(lemma) REGEXP '^(..)*CE'

(再次假设字母列表较长,而不仅仅是 Α-Ω。)

(我的评论适用于 CHARACTER SET utf8utf8mb4;任何 COLLATION。)