MySQL模式匹配(LIKE VS REGEXP)】的更多相关文章

转载地址:http://www.webjx.com/database/mysql-32809.html like like要求整个数据都要匹配,而REGEXP只需要部分匹配即可. 也就是说,用Like,必须这个字段的所有内容满足条件,而REGEXP只需要有任何一个片段满足即可. MySQL提供标准的SQL模式匹配(like),以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式(regexp).SQL的模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目…
mysql中LIKE和REGEXP都可以用来字符匹配 正则表达式REGEXP是为复杂搜索指定模式的强大方式. like用法   LIKE一般与通配符(%)和(_)两个使用 如例 SELECT prod_id,prod_name FROM products WHERE prod_name LIKE ' %on_'; 其中%可以匹配任意长度任意字符,也可长度为0,即没有字符 其中_只能匹配长度为一的单一字符,若原代码中为'%on__' 即可以匹配长度为二的任意字符 若要匹配字符串中有%和_的字符串,…
3.3.4.7. 模式匹配 MySQL提供标准的SQL模式匹配,以及一种基于象Unix实用程序如vi.grep和sed的扩展正则表达式模式匹配的格式. SQL模式匹配允许你使用“_”匹配任何单个字符,而“%”匹配任意数目字符(包括零字符).在 MySQL中,SQL的模式默认是忽略大小写的.下面给出一些例子.注意使用SQL模式时,不能使用=或!=:而应使用LIKE或NOT LIKE比较操作符. 要想找出以“b”开头的名字: mysql> SELECT * FROM pet WHERE name L…
在MySQL中,模糊搜索的时候主要用两种方式: 1.like2.regexp + 正则表达式 性能优于like 正则表达式描述了一组字符串. 最简单的正则表达式是不含任何特殊字符的正则表达式.例如,正则表达式hello匹配hello. 非平凡的正则表达式采用了特殊的特定结构,从而使得它们能够与1个以上的字符串匹配.例如,正则表达式hello|word匹配字符串hello或字符串word. 作为一个更为复杂的示例,正则表达式B[an]*s匹配下述字符串中的任何一个:Bananas,Baaaaas,…
一.使用LIKE或NOT LIKE比较操作符 使用 "_" 匹配任何单个字符,而 "%" 匹配任意数量的字符(包括零字符): 例如: 1.要想找出以“b”开头的名字: mysql> SELECT * FROM pet WHERE name LIKE 'b%'; 2.要想找出以“fy”结尾的名字: mysql> SELECT * FROM pet WHERE name LIKE '%fy'; 3.要想找出包含“w”的名字: mysql> SELECT…
REGEXP在mysql是用来执行正则表达式的一个函数 像php中的preg之类的函数了,regexp正则函数如果只是简单的查询使用like即可,但复杂的还是需要使用regexp了,下面我们来看看. MySql用户手册建议,在构造简单查询时,仍使用通配符. 如:Select [*|fieldname list] From [tablename] where [fieldname] like ["%someletter"|"%someletter%","_&…
在开始这个话题之前我们首先来做一个小实验,比较一下REGEXP和Like他们两个哪个效率高,如果效率太低,我们就没有必要做过多的研究了,实验的代码如下:<?phpRequire("config.php");//函数:计时函数//用法:Echo Runtime(1);Function Runtime($mode=0){    Static $s;    IF(!$mode){        $s=microtime();        Return;    }    $e=micr…
1 regexp ^ 匹配字符串的开始部分 $ 匹配字符串的结束部分 . 匹配任何字符(包括回车和新行) a* 匹配0或多个a字符的任何序列 a+ 匹配1个或多个a字符的任何序列 a? 匹配0个或1个a字符 de|abc 匹配序列de或abc (abc)* 匹配序列adc的0个或者多个实例 {n}.{m,n} {n}或{m,n}符号提供了编写正则表达式的更通用方式,能够匹配模式的很多前述原子(或“部分”).m和n均为整数. a* 可被写为a{0,} a+ 可被写为a{1,} a? 可被写为a{0…
http://blog.csdn.net/pipisorry/article/details/46773545 sql语言 结构化的查询语言.(Structured Query Language),是关系数据库管理系统的标准语言. 它是一种解释语言:写一句执行一句,不需要整体编译执行. 语法特点: 1.没有" ",字符串使用' '包含 2.没有逻辑相等,赋值和逻辑相等都是= 3.类型不再是最严格的.任何数据都可以包含在' '以内 4.没有bool值的概念,但是在视图中可以输入true/…
mysql where子句的模式匹配 今天在应用中遇到了这样的一个问题,有一个字段 t1,其中的值类似于:1,1,1,2,3,3,4,4,5,5,2,4,3,2,1,2 需要从里面搜索出比如说:第一个逗号前的数字范围为3-5之间,第三个逗号前的数字的范围为3-5之间,第10个逗号前的数字范围为3-5之间,其余的都为1-5之间... 则sql语句可以这么写: SELECT * FROM tb WHERE t1 REGEXP '^[3-5],[1-5],[3-5],[1-5],[1-5],[1-5]…