V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
thinkmore
V2EX  ›  问与答

MYSQL 中如何使用 REGEXP 匹配中文问题???

  •  
  •   thinkmore · 2015-01-11 13:51:02 +08:00 · 5235 次点击
    这是一个创建于 3635 天前的主题,其中的信息可能已经有所发展或是发生改变。
    倒腾了几天,看文档,搜google,都没有找到答案,实在是没法了,求各位助我一臂之力!
    V2EX不好上图,就把问题发到了csdn,望大家看看,给我个提示!不胜感激。

    http://bbs.csdn.net/topics/390969138?
    7 条回复    2017-09-01 03:18:31 +08:00
    thinkmore
        1
    thinkmore  
    OP
       2015-01-11 14:36:59 +08:00
    自己给自己顶一下吧!
    lululau
        2
    lululau  
       2015-01-11 14:43:19 +08:00
    MySQL 不支持 {m,} 这个用法
    lululau
        3
    lululau  
       2015-01-11 14:45:10 +08:00
    而且你的正则写得也有问题
    lululau
        4
    lululau  
       2015-01-11 14:46:49 +08:00   ❤️ 1
    好像 {m,} 是可以的,改成 '(删除){2,}' 试试
    thinkmore
        5
    thinkmore  
    OP
       2015-01-11 17:10:26 +08:00
    @lululau mysql,改成你说的那种不起作用,我以为它的语法是Java中的那种语法,结果竟然把逗号也当成比较的内容了,所以我换成了

    select * from test3 where operate REGEXP '(删除,){2}'
    面前达到效果了
    thinkmore
        6
    thinkmore  
    OP
       2015-01-12 15:51:59 +08:00
    唉,看来这个正则要把我弄哭了,我换到Java端来也搞不定,悲催
    undercloud
        7
    undercloud  
       2017-09-01 03:18:31 +08:00   ❤️ 1
    好吧,搜到这儿 贡献一下刚找到的答案 [stackoverflow]( https://stackoverflow.com/questions/14356248/does-mysql-regexp-support-unicode-matching)
    MySql 的 REGEXP 不支持多字节匹配,也就是说,中文编码是不行了
    要用只能用 LIKE 或者数据量不大的情况下从数据库中取出来 用程序作为 workaround
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1100 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:45 · PVG 02:45 · LAX 10:45 · JFK 13:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.