回到顶部
您的当前位置: 编程语言> 数据库> MYSQL> 进阶应用
Mysql5中的REGEXP函数
2014-06-04 00:38:18
标签: 原创 Mysql5 REGEXP函数 正则表达式

    在mysql中,可以使用正则表达式去进行匹配,比如在如下的场景,是十分有用的: 

    比如有如下的两个表 

        employee_hobby 

        id     hobbies 

        --- -------- 

        1     Travelling 

        2     Suring the Internet 

        3     Reading 

        4     Swimming 

        5     Meeting Friends 

        6     Cooking 

        . . 

        . . 

        10   Watching Movie 


        employee 

        id    hobby_ids 

        --- --------- 

        1    1,4,3,6,10 

        2    1,3,4,10 

        3    7 

        . . 

        . . 

        10   3,5,6,9 

    employee表记录了某个员工的爱好有哪些,这里不是用典型的一对多来存储,而是用逗号来进行分隔。那么,要找的是: 

    1) 有哪些人有4号的爱好 

SELECT id FROM employee WHERE hobby_ids REGEXP "[[::]]"

    注意: 

    [[:<:]], [[:>:]] 

    这些标记表示word边界。它们分别与word的开始和结束匹配。word是一系列字字符,其前面和后面均没有字字符。字字符是alnum类中的字母数字字符或下划线(_)。 

    2)查找同时有这些爱好的: 

SELECT id FROM employee WHERE hobby_ids REGEXP "[[::]]"