栏目导航
热点推荐
- 提高MYSQL查询效率的三个有效的
- 修改MySQL的默认密码的方法
- 如何修改MySQL数据库表中的数据
- 开源数据库MySQL优化秘籍
- 一起从基础入手来打开MySQL数据
- 新手学PHP和MySQL动态网站开发教
- MYSQL教程:新手如何操作MYSQL
- MySQL安全问题的一点心得
- mysql 1046错误解决实例
- 初学者必读 MySQL 数据库常见问
- 提高mysql数据库速度方法
- 修改MySQL 5.0的默认100连接数
阅览排行
MYSQL教程:表达式操作符和数据类型转换
www.jz123.cn 2009-02-20 来源: 中国建站 责任编辑(乐乐) 我要投递新闻
1.表达式操作符
Table 2. 逻辑操作符
操作符 | 语法 | 含义 |
---|---|---|
AND 或 && | a AND b 或 a && b | 逻辑与,若两个操作数同时为真,则为真 |
OR 或 || | a OR b 或 a || b | 逻辑或,只要有一个操作数为真,则为真 |
XOR | a XOR b | 逻辑异或,若有且仅有一个操作数为真,则为真 |
NOT 或 ! | NOT a 或 !a | 逻辑非,若操作数为假,则为真 |
Table 3. 位操作符
操作符 | 语法 | 含义 |
---|---|---|
& | a & b | 按位与,若操作数同位同为1,则该位为1 |
| | a | b | 按位或,若操作数同位有一位为1,则该位为1 |
^ | a ^ b | 按拉异或,若操作数同一位分别为1和0,则该位为1 |
<< | a << b | 把a中的各个位左移b个位置 |
>> | a >> b | 把a中的各个位右移b个位置 |
Table 4. 比较操作符
操作符 | 语法 | 含义 |
---|---|---|
= | a = b | 若两个操作数相等,则为真 |
<=> | a <=> b | 若两个操作数相等,则为真,可用于NULL值比较 |
!= 或 <> | a != b 或 a <> b | 若两个操用数不等,则为真 |
< | a < b | 若a小于b,则为真 |
<= | a <= b | 若a小于或等于b,则为真 |
> | a > b | 若a大于b,则为真 |
>= | a > b | 若a大于或等于b,则为真 |
IN | a IN (b1,b2,...) | 若a等于b1,b2,...中的某一个,则为真 |
BETWEEN | a BETWEEN b AND c | 若a在b和c之间(包括b和c),则为真 |
NOT BETWEEN | a NOT BETWEEN b AND c | 若a不在b和c之间(包括b和c),则为真 |
LIKE | a LIKE b | SQL模式匹配,若a匹配b,则为真 |
NOT LIKE | a NOT LIKE b | SQL模式匹配,若a不匹配b,则为真 |
REGEXP | a REGEXP b | 正则表达式匹配,若a匹配b,则为真 |
NOT REGEXP | a NOT REGEXP b | 正则表达式匹配,若a不匹配b,则为真 |
IS NULL | a IS NULL | 若a为NULL,则为真 |
IS NOT NULL | a IS NOT NULL | 若a不为NULL,则为真 |
LIKE模式匹配中的“%”匹配任意个字符,“_”匹配一个字符。匹配不区分大小写字符。 |
Table 5. 操作符优先级(由高至低排列)
操作符 |
---|
BINARY,COLLATE |
NOT、! |
^ |
XOR |
-(一元求负操作符)、~(一元取反操作符) |
*、/、% |
+、- |
<<、>> |
& |
| |
<、<=、=、<=>、!=、<>、>=、>、IN、IS、LIKE、REGEXP、RLIKE |
BETWEEN、CASE、WHEN、THEN、ELSE |
AND、&& |
OR、|| |
:= |
在MySQL的表达式中,如果某个数据值的类型与上下文所要求的类型不相符,MySQL则会根据将要进行的操作自动地对数据值进行类型转换。如:
1 + '2' 会转换成1 + 2 = 3 1+ 'abc' 会转换成1 + 0 = 1 由于abc不能转换成任何的值,所以默认为0
MySQL会根据表达式上下文的要求,把字符串和数值自动转换为日期和时间值
对于超范围或非法的值,MySQL也会进行转换,但转换出来的结果是错误的。出现该情况时,MySQL会提示警告信息,我们可捕获该信息以进行相应的处理。
0
上一篇:MYSQL教程:索引和查询优化程序 下一篇:MYSQL教程:如何选择正确的数据列类型