MySQL Regexp支持Unicode匹配吗

MySQL Regexp支持Unicode匹配吗,mysql,regex,unicode,pattern-matching,Mysql,Regex,Unicode,Pattern Matching,有人知道Mysql的regexp是否支持unicode吗?我一直在做一些研究,大多数博客等似乎都表明存在问题或不受支持。我想知道是否最好使用LIKE进行unicode模式匹配,使用regexp进行ASCII增强模式匹配?我喜欢能够在字符串的开头或结尾搜索匹配的想法,但是如果regexp不支持unicode,那么如果我的文本是unicode,这可能会很困难 有人知道Mysql的regexp是否支持unicode吗?我一直在做一些研究,大多数博客等似乎都表明存在问题或不受支持 如以下文件所述: 警

有人知道Mysql的regexp是否支持unicode吗?我一直在做一些研究,大多数博客等似乎都表明存在问题或不受支持。我想知道是否最好使用LIKE进行unicode模式匹配,使用regexp进行ASCII增强模式匹配?

我喜欢能够在字符串的开头或结尾搜索匹配的想法,但是如果regexp不支持unicode,那么如果我的文本是unicode,这可能会很困难

  • 有人知道Mysql的regexp是否支持unicode吗?我一直在做一些研究,大多数博客等似乎都表明存在问题或不受支持

    如以下文件所述:

    警告 and运算符以字节方式工作,因此它们不是多字节安全的,并且可能会对多字节字符集产生意外的结果。此外,这些运算符按字节值比较字符,即使给定的排序规则将重音字符视为相等,重音字符也可能不作为相等字符进行比较

  • 我想知道,最好使用LIKE进行unicode模式匹配,使用regexp进行ASCII增强模式匹配吗

    是的,那最好

  • 我喜欢能够在字符串的开头或结尾搜索匹配项的想法,但是如果regexp不支持unicode,那么如果我的文本是unicode,这可能会很困难

    你也可以用
    这样的
    来做:

    WHERE foo LIKE 'bar%'
    
    以及:

  • :

    REGEXP/RLIKE以及新函数REGEXP_REPLACE()、REGEXP_INSTR()和REGEXP_SUBSTR()现在可以与所有 MariaDB支持的多字节字符集,包括东亚字符集 字符集(big5、gb2313、gbk、eucjp、eucjpms、cp932、ujis、, euckr)和Unicode字符集(utf8、utf8mb4、ucs2、utf16、, utf16le,utf32)。在MariaDB的早期版本中(以及所有MySQL) 版本)REGEXP/RLIKE仅适用于8位字符集

    从Mysql 8.0开始

    有关兼容性问题,请参见

    WHERE foo LIKE '%bar'