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

<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </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_name WHEREauto_colISNULL
这个操作可以通过设置SQL_AUTO_IS_NULL=0来禁止。查看章节5.5.6SET句法.对于NOTNULL的DATE和DATETIME列,可以通过使用下列语句找到特殊的值0000-00-00: 1
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值