欢迎来到天天文库
浏览记录
ID:8963512
大小:387.00 KB
页数:47页
时间:2018-04-13
《select和where子句的函数》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、MySQLReferenceManualforversion4.1.0-alpha.6.3用于SELECT和WHERE子句的函数一个SQL语句中的select_expression或where_definition可由任何使用了下面所描述函数的表达式组成。包含NULL的表达式总是得出一个NULL值结果,除非表达式中的操作和函数在文档中有另外的说明。注意:在一个函数名和跟随它的括号之间必须不存在空格。这有助于MySQL语法分析程序区分函数调用和对恰巧与函数同名表或列的引用。然而,参数左右两边的空格却是允许的。你可以强制MySQL接受函数名
2、后存在空格的形式,这需要通过以--ansi选项启动mysqld,或在mysql_connect()中使用CLIENT_IGNORE_SPACE,但是,在这种情况下,所有的函数名均将成为保留字。查看章节1.8.2以ANSI模式运行MySQL.为了简洁,从mysql程序输出的例子以缩写的形式显示。因此:mysql>SELECTMOD(29,9);1rowsinset(0.00sec)+-----------+
3、mod(29,9)
4、+-----------+
5、2
6、+-----------+将被显示为这样:mysql>SELECTMOD(29,
7、9);->26.3.1无类型的特殊运算符和函数6.3.1.1圆括号(...)括号,使用它来强制一个表达式的计算顺序。mysql>SELECT1+2*3;->7mysql>SELECT(1+2)*3;->96.3.1.2比较运算符比较运算符的结果是1(TRUE)、0(FALSE)或NULL。这些函数可工作于数字和字符串上。根据需要,字符串将会自动地被转换到数字,以及数字被转换成字符串(比如在Perl中)。MySQL使用下列规则进行比较:·如果一个或两个参数是NULL,比较的结果是NULL,除了<=>运算符。·如果在一个比较操作中两个参数均
8、是字符串,他们将作为字符串被比较。·如果两个参数均是整数,他们作为整数被比较。·十六进制值如果不与一个数字进行比较,那么它将当作一个二进制字符串。·如果参数之一是一个TIMESTAMP或DATETIME列,而另一参数是一个常数,在比较执行之前,这个常数被转换为一个时间戳。这样做是为了对ODBC更友好。·在所有其它情况下,参数作为浮点(real)数字被比较。缺省地,字符串使用当前字符集以忽略字母大小写的方式进行比较(缺省的字符集为ISO-8859-1Latin1,它对英语处理得很出色)。下面的例子演示了对于比较操作字符串到数字的转换:my
9、sql>SELECT1>'6x';->0mysql>SELECT7>'6x';->1mysql>SELECT0>'x6';->0mysql>SELECT0='x6';->1=等于:mysql>SELECT1=0;->0mysql>SELECT'0'=0;->1mysql>SELECT'0.0'=0;->1mysql>SELECT'0.01'=0;->0mysql>SELECT'.01'=0.01;->1<>!=不等于:mysql>SELECT'.01'<>'0.01';->1mysql>SELECT.01<>'0.01';->0mysq
10、l>SELECT'zapp'<>'zappp';->1<=小于或等于:mysql>SELECT0.1<=2;->1<小于:mysql>SELECT2<2;->0>=大于或等于:mysql>SELECT2>=2;->1>大于:mysql>SELECT2>2;->0<=>NULL值安全等于:mysql>SELECT1<=>1,NULL<=>NULL,1<=>NULL;->110ISNULLISNOTNULL测试一个值是或不是NULL:mysql>SELECT1ISNULL,0ISNULL,NULLISNULL;->001mysql>SELE
11、CT1ISNOTNULL,0ISNOTNULL,NULLISNOTNULL;->110为了能够与其它程序更好的工作,在使用ISNULL是MySQL支持下列额外选择性:·通过它,你可以找到最后插入的记录行:·SELECT*FROMtbl_nameWHEREauto_colISNULL这个操作可以通过设置SQL_AUTO_IS_NULL=0来禁止。查看章节5.5.6SET句法.·对于NOTNULL的DATE和DATETIME列,可以通过使用下列语句找到特殊的值0000-00-00:·SELECT*FROMtbl_nameWHEREdate_
12、columnISNULL这需要通过某些ODBC应用程序才能工作(因为ODBC不支持一个0000-00-00日期)exprBETWEENminANDmax如果expr大于或等于min,并且expr小于或等于m
此文档下载收益归作者所有