MySQL 3.23 中文参考手册 |
|
|
|
| 2004-02-12 MySQL 译者:晏子 http://www.mysql.com/doc.html |
|
| |
通常,如果在字符串比较中的任何表达式是区分大小写的,比较以大小写敏感的方式执行。
expr LIKE pat [ESCAPE 'escape-char']
使用SQL的简单的正规表达式比较的模式匹配。返回1(TRUE)或0(FALSE)。用LIKE,你可以在模式中使用下列2个通配符字符: % 匹配任何数目的字符,甚至零个字符
_ 精确匹配一个字符
mysql> select 'David!' LIKE 'David_';
-> 1
mysql> select 'David!' LIKE '%D%v%';
-> 1
为了测试一个通配符的文字实例,用转义字符的加在字符前面。如果你不指定ESCAPE字符,假定为“”:
% 匹配一%字符
_ 匹配一_字符
mysql> select 'David!' LIKE 'David_';
-> 0
mysql> select 'David_' LIKE 'David_';
-> 1
为了指定一个不同的转义字符,使用ESCAPE子句:
mysql> select 'David_' LIKE 'David|_' ESCAPE '|';
-> 1
LIKE允许用在数字的表达式上!(这是MySQL对ANSI SQL LIKE的一个扩充。)
mysql> select 10 LIKE '1%';
-> 1
注意:因为MySQL在字符串中使用C转义语法(例如,“n”),你必须在你的LIKE字符串中重复任何“”。例如,为了查找“n”,指定它为“ \n”,为了查找“”,指定它为“\\”(反斜线被分析器剥去一次,另一次是在模式匹配完成时,留下一条单独的反斜线被匹配)。
expr NOT LIKE pat [ESCAPE 'escape-char']
与NOT (expr LIKE pat [ESCAPE 'escape-char'])相同。
expr REGEXP pat
expr RLIKE pat
执行一个字符串表达式expr对一个模式pat的模式匹配。模式可以是一个扩充的正则表达式。见MySQL 正则表达式句法的 H 描述.如果expr匹配pat,返回1,否则返回0。RLIKE是REGEXP的一个同义词,提供了与mSQL的兼容性。注意:因为MySQL在字符串中使用C转义语法(例如,“n”), 你必须在你的REGEXP字符串重复任何“”。在MySQL3.23.4中,REGEXP对于正常的(不是二进制)字符串是忽略大小写。
mysql> select 'Monty!' REGEXP 'm%y%%';
-> 0
mysql> select 'Monty!' REGEXP '.*';
-> 1
mysql> select 'new*n*line' REGEXP 'new\*.\*line';
-> 1
mysql> select "a" REGEXP "A", "a" REGEXP BINARY "A";
-> 1 0
当决定一个字符的类型时,REGEXP和RLIKE使用当前的字符集(缺省为ISO-8859-1 Latin1)。
expr NOT REGEXP pat
expr NOT RLIKE pat
与NOT (expr REGEXP pat)相同。
STRCMP(expr1,expr2)
如果字符串相同,STRCMP()回来0,如果第一参数根据当前的排序次序小于第二个,返回-1,否则返回1。
mysql> select STRCMP('text', 'text2');
-> -1
mysql> select STRCMP('text2', 'text');
-> 1
mysql> select STRCMP('text', 'text');
-> 0
|
| |
|
|
| |
|
发表评论
关闭窗口
|
|
|
|