4.1.0中文参考手册---6.3用于SELECT和WHERE子句的函数(1)

<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
MySQL4.1.0中文参考手册---犬犬(心帆)翻译MySQLReferenceManualforversion4.1.0-alpha.

6.3用于SELECTWHERE子句函数
一个SQL语句中的SELECT_expression或WHERE_definition可由任何使用了下面所描述函数的表达式组成。

包含NULL的表达式总是得出一个NULL值结果,除非表达式中的操作和函数在文档中有另外的说明。

注意:在一个函数名和跟随它的括号之间必须不存在空格。这有助于MySQL语法分析程序区分函数调用和对恰巧与函数同名表或列的引用。然而,参数左右两边的空格却是允许的。

你可以强制MySQL接受函数名后存在空格的形式,这需要通过以--ansi选项启动mysqld,或在mysql_connect()中使用CLIENT_IGNORE_SPACE,但是,在这种情况下,所有的函数名均将成为保留字。查看章节1.8.2以ANSI模式运行MySQL.

为了简洁,从mysql程序输出的例子以缩写的形式显示。因此:

mysql>SELECTMOD(29,9);1rowsinset(0.00sec)+-----------+|mod(29,9)|+-----------+|2|+-----------+

将被显示为这样:

mysql>SELECTMOD(29,9);->2
6.3.1无类型的特殊运算符和函数6.3.1.1圆括号
(...)

括号,使用它来强制一个表达式的计算顺序。

mysql>SELECT1+2*3;->7mysql>SELECT(1+2)*3;->9
6.3.1.2比较运算符
比较运算符的结果是1(TRUE)、0(FALSE)或NULL。这些函数可工作于数字和字符串上。根据需要,字符串将会自动地被转换到数字,以及数字被转换成字符串(比如在Perl中)。

MySQL使用下列规则进行比较:
如果一个或两个参数是NULL,比较的结果是NULL,除了<=>运算符。如果在一个比较操作中两个参数均是字符串,他们将作为字符串被比较。如果两个参数均是整数,他们作为整数被比较。十六进制值如果不与一个数字进行比较,那么它将当作一个二进制字符串。如果参数之一是一个TIMESTAMP或DATETIME列,而另一参数是一个常数,在比较执行之前,这个常数被转换为一个时间戳。这样做是为了对ODBC更友好。在所有其它情况下,参数作为浮点(real)数字被比较。
缺省地,字符串使用当前字符集以忽略字母大小写的方式进行比较(缺省的字符集为ISO-8859-1Latin1,它对英语处理得很出色)。

下面的例子演示了对于比较操作字符串到数字的转换:

mysql>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';->0mysql>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;->110
ISNULLISNOTNULL测试一个值是或不是NULL:
mysql>SELECT1ISNULL,0ISNULL,NULLISNULL;->001mysql>SELECT1ISNOTNULL,0ISNOTNULL,NULLISNOTNULL;->110
为了能够与其它程序更好的工作,在使用ISNULL是MySQL支持下列额外选择性:通过它,你可以找到最后插入的记录行:
SELECT*FROMtbl_nameWHEREauto_colISNULL
这个操作可以通过设置SQL_AUTO_IS_NULL=0来禁止。查看章节5.5.6SET句法.对于NOTNULL的DATE和DATETIME列,可以通过使用下列语句找到特殊的值0000-00-00:1
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 728x15, 创建于 08-4-23MSDN */ google_ad_slot = "3624277373"; google_ad_width = 728; google_ad_height = 15; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"><!-- google_ad_client = "pub-2947489232296736"; /* 160x600, 创建于 08-4-23MSDN */ google_ad_slot = "4367022601"; google_ad_width = 160; google_ad_height = 600; //--> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
阅读更多
个人分类: 数据库
上一篇�Զ���ÿ�չ�����������Ant�����java���̵�ÿ�չ���
下一篇ʹDBGrid�����Զ���������ʱ��С
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭