MYSQL的字符串比较函数如下:
通常,如果在字符串比较中的任何表达式是区分大小写的,比较以大小写敏感的方式执行。
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
你的记录集里只有2条呀,除了李四,或者也可以这样写select * from t_user where name not in ('李四')
这样也可以查除了name是李四的总条数
select COUNT(*) from t_user where name not in ('李四')
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)