MYSQL教程:表达式操作符和数据类型转换
来源:asp之家 发布时间:2009-02-27 15:51:00
1.表达式操作符
Table 1 算术操作符
操作符 语法 含义+ a + b 相加 - a - b 相减 - - a 求负 * a * b 乘法 / a / b 除法 % a % b 求余
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、|| :=
2. 类型转换
在MySQL的表达式中,如果某个数据值的类型与上下文所要求的类型不相符,MySQL则会根据将要进行的操作自动地对数据值进行类型转换。如:
1 + '2' 会转换成1 + 2 = 31+ 'abc' 会转换成1 + 0 = 1 由于abc不能转换成任何的值,所以默认为0
MySQL会根据表达式上下文的要求,把字符串和数值自动转换为日期和时间值
对于超范围或非法的值,MySQL也会进行转换,但转换出来的结果是错误的。出现该情况时,MySQL会提示警告信息,我们可捕获该信息以进行相应的处理。


猜你喜欢
- 本文实例分析了CI框架出现mysql数据库连接资源无法释放的解决方法。分享给大家供大家参考,具体如下:使用ci框架提供的类查询数据:$thi
- 本文结合其他博主的一些介绍总结了dot函数运算过程基本简介dot函数为numpy库下的一个函数,主要用于矩阵的乘法运算,其中包括:向量内积、
- 本文实例为大家分享了PHP变量传值赋值和引用赋值变量销毁的具体代码,供大家参考,具体内容如下<?php $a = 100
- Python装饰器,分两部分,一是装饰器本身的定义,一是被装饰器对象的定义。一、函数式装饰器:装饰器本身是一个函数。1.装饰函数:被装饰对象
- 一、查看定时策略是否开启show variables like '%event_scheduler%'; * on
- 概述Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64 就是一种基于 64 个可打印字符来表示二进制数据的
- 前言mpvue 是美团开源的一套语法与vue.js一致的、快速开发小程序的前端框架,按官网说可以达到小程序与H5界面使用一套代码。使用此框架
- 本文实例讲述了PHP删除数组中指定值的元素。分享给大家供大家参考,具体如下:测试数组如下://这是一个测试数组$testArr = arra
- 近期被问到一个问题,在你们项目中使用的是Vue的SPA(单页面)还是Vue的多页面设计?这篇文章主要围绕Vue的SPA单页面设计展开。 关于
- 本节我们再来了解下 Requests 的一些高级用法,如文件上传,代理设置,Cookies 设置等等。1. 文件上传我们知道 Reqeues
- 本文实例讲述了Python 类属性与实例属性,类对象与实例对象用法。分享给大家供大家参考,具体如下:demo.py(类属性,所有实例对象共用
- 本文实例为大家分享了python实现俄罗斯方块的具体代码,供大家参考,具体内容如下# teris.py# A module for game
- The test clienttest client是一个python类,来模拟一个简单的“哑”浏览器,允许你来测试你的view函数.你可以
- 发现ie7的空格间距要比ie6/firefox/opera的都要宽一点。比如有时候排版的时候,我会采用简单的空格来分隔。<div&nb
- 1. 预估执行计划 - Explain PlanExplain plan以SQL语句作为输入,得到这条SQL语句的执行计划,并将执行计划输出
- stark组件是仿照django的admin模块开发的一套组件,它的作用是在网页上对注册的数据表进行增删改查操作一、配置1、创建
- Python中的函数调用与c++不同的是将this指针直接作为self当作第一个形参进行处理,从而将静态函数与实例方法的调用形式统一了起来。
- var a= new Array(new Array(1,2),new Array('b','c')); d
- 本文实例为大家分享了python实现分页效果展示的具体代码,供大家参考,具体内容如下难点:清空Layout#!/usr/bin/python
- Anaconda是一个开源的Python发行版本,包括Conda、Python以及一大堆安装好的工具包,比如:numpy、pandas等。其