海浩网论坛

 找回密码
 关闭注册
搜索
热搜: 女囚槛 win7
楼主: 无式
打印 上一主题 下一主题

加油sladen! 05工作计划 [复制链接]

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
21#
发表于 2005-1-5 14:21:58 |只看该作者
6.3.1.2 比较运算符
比较运算符的结果是 1 (TRUE)、0 (FALSE) 或 NULL。这些函数可工作于数字和字符串上。根据需要,字符串将会自动地被转换到数字,以及数字被转换成字符串(比如在 Perl 中)。

MySQL 使用下列规则进行比较:

如果一个或两个参数是 NULL,比较的结果是 NULL,除了 <=> 运算符。
如果在一个比较操作中两个参数均是字符串,他们将作为字符串被比较。
如果两个参数均是整数,他们作为整数被比较。
十六进制值如果不与一个数字进行比较,那么它将当作一个二进制字符串。
如果参数之一是一个 TIMESTAMP 或 DATETIME 列,而另一参数是一个常数,在比较执行之前,这个常数被转换为一个时间戳。这样做是为了对 ODBC 更友好。
在所有其它情况下,参数作为浮点(real)数字被比较。

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
22#
发表于 2005-1-5 14:23:19 |只看该作者
测试一个值是或不是 NULL: mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;
        -> 0 0 1
mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
        -> 1 1 0

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
23#
发表于 2005-1-5 14:26:01 |只看该作者
为了能够与其它程序更好的工作,在使用 IS NULL 是 MySQL 支持下列额外选择性:
通过它,你可以找到最后插入的记录行: SELECT * FROM tbl_name WHERE auto_col IS NULL

这个操作可以通过设置 SQL_AUTO_IS_NULL=0 来禁止。查看章节 5.5.6 SET 句法.
对于 NOT NULL 的 DATE 和 DATETIME 列,可以通过使用下列语句找到特殊的值 0000-00-00: SELECT * FROM tbl_name WHERE date_column IS NULL

这需要通过某些 ODBC 应用程序才能工作(因为 ODBC 不支持一个 0000-00-00 日期)

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
24#
发表于 2005-1-5 14:26:56 |只看该作者
expr BETWEEN min AND max
如果 expr 大于或等于 min ,并且 expr 小于或等于 max,BETWEEN 返回 1,否则返回 0。它等价于表达式 (min <= expr AND expr <= max) ,只要所有的参数均是相同的类型。 否则类型会依照上面的规则发生转换,但是应用于所有三个参数。注意,在 MySQL 4.0.5 之前,参数被转换到 expr 的类型。

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
25#
发表于 2005-1-5 14:28:20 |只看该作者
ISNULL(expr)
如果 expr 是 NULL,ISNULL() 返回 1,否则返回 0: mysql> SELECT ISNULL(1+1);
        -> 0
mysql> SELECT ISNULL(1/0);
        -> 1

注意,对 NULL 值使用 = 进行比较总是为 false !
COALESCE(list)
返回列表中第一个非 NULL 的元素: mysql> SELECT COALESCE(NULL,1);
        -> 1
mysql> SELECT COALESCE(NULL,NULL,NULL);
        -> NULL

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
26#
发表于 2005-1-5 14:31:09 |只看该作者
NOT
!
逻辑非。如果操作数为 0,返回 1;如果操作数为非零,返回 0;如果操作数为 NOT NULL,返回 NULL。 mysql> SELECT NOT 10;
        -> 0
mysql> SELECT NOT 0;
        -> 1
mysql> SELECT NOT NULL;
        -> NULL
mysql> SELECT ! (1+1);
        -> 0
mysql> SELECT ! 1+1;
        -> 1

最后一个例子返回 1,因为表达式是与 (!1)+1 一样被计算的。

使用道具 举报

荣誉版主

铁衣琴心

UID
35281
注册时间
2004-3-16
帖子
19438
精华
28
27#
发表于 2005-1-5 14:32:41 |只看该作者
这么灌离500还远啊.你得见缝插针的到处去灌,这是俺的一点心得

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
28#
发表于 2005-1-5 14:33:07 |只看该作者
AND
&
逻辑与。如果所有的操作数都是非零或非 NULL 的,返回 1;如果有一个或多个操作数为 0 ,则返回 0,只要操作数中有 NULL 返回值就为 NULL。 mysql> SELECT 1 & 1;
        -> 1
mysql> SELECT 1 & 0;
        -> 0
mysql> SELECT 1 && NULL;
        -> NULL
mysql> SELECT 0 && NULL;
        -> 0
mysql> SELECT NULL && 0;
        -> 0

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
29#
发表于 2005-1-5 14:34:26 |只看该作者
谢谢周润发

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
30#
发表于 2005-1-5 14:34:57 |只看该作者
请注意,在 MySQL 4.0.5 以前版本中,当遇到一个 NULL 时就停止计算,而不是继续进程检查可能存在的0。这就意味着,在这些版本中,SELECT (NULL AND 0) 返回 NULL,而不是 0。在 4.0.5 中,代码已被重新设计了,已便于在任何仍然使用优化情况下,返回值总是能如 ANSI 所规定的那样。

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
31#
发表于 2005-1-5 14:36:11 |只看该作者
OR
||
逻辑或。如果任何一个操作数是非零的,返回值为 1,如果任一操作数为 NULL,返回值为 NULL,否则返回 0。 mysql> SELECT 1 || 1;
        -> 1
mysql> SELECT 1 || 0;
        -> 1
mysql> SELECT 0 || 0;
        -> 0
mysql> SELECT 0 || NULL;
        -> NULL
mysql> SELECT 1 || NULL;
        -> 1

使用道具 举报

小丑鱼

永远的学生

UID
20614
注册时间
2003-2-10
帖子
893
精华
0
32#
发表于 2005-1-5 14:38:19 |只看该作者
这么干?我估计可能不到500就被咔嚓了,何必呢?不要头像不是也一样吗?

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
33#
发表于 2005-1-5 14:38:22 |只看该作者
XOR
逻辑异或。如果任一操作数为 NULL,返回值为 NULL。对于非 NULL 的操作数,如果有奇数个非零的操作数,结果返回为 1,否则返回 0。 mysql> SELECT 1 XOR 1;
        -> 0
mysql> SELECT 1 XOR 0;
        -> 1
mysql> SELECT 1 XOR NULL;
        -> NULL
mysql> SELECT 1 XOR 1 XOR 1;
        -> 1

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
34#
发表于 2005-1-5 14:39:18 |只看该作者
最初由 网事如风 发布
[B]这么干?我估计可能不到500就被咔嚓了,何必呢?不要头像不是也一样吗? [/B]


我光学习光灌水啊    何况也很慢么

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
35#
发表于 2005-1-5 14:43:07 |只看该作者
a XOR b 算术相等于 (a AND (NOT b)) OR ((NOT a) and b)。 XOR 在 MySQL 4.0.2 中被添加。

使用道具 举报

UID
31485
注册时间
2003-10-19
帖子
416
精华
0
36#
发表于 2005-1-5 14:45:48 |只看该作者
IFNULL(expr1,expr2)
如果 expr1 为非 NULL 的,IFNULL() 返回 expr1,否则返回 expr2。IFNULL() 返回一个数字或字符串值,这取决于它被使用的语境: mysql> SELECT IFNULL(1,0);
        -> 1
mysql> SELECT IFNULL(NULL,10);
        -> 10
mysql> SELECT IFNULL(1/0,10);
        -> 10
mysql> SELECT IFNULL(1/0,'yes');
        -> 'yes'

使用道具 举报

您需要登录后才可以回帖 登录 | 关闭注册

2021 , Hello Everyone ^_^ ^_^ ^_^