查看“MySQL 函数和运算符:运算符”的源代码
←
MySQL 函数和运算符:运算符
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
[[category:MySQL]] == 关于 == {| class="wikitable" ! Name !! Description |- | & || 按位“AND” |- | > || 大于运算符 |- | >> || 右移 |- | >= || 大于或等于运算符 |- | < || 小于运算符 |- | <>, != || 不等于运算符 |- | << || 左移 |- | <= || 小于或等于运算符 |- | <=> || NULL 安全等于运算符 |- | %, MOD || Modulo operator |- | * || Multiplication operator |- | + || Addition operator |- | - || Minus operator |- | - || 更改参数的符号 |- | '''->''' || 评估路径后从 JSON 列返回值;等效于 '''JSON_EXTRACT()'''。 |- | '''->>''' || (5.7.13 引入) 评估路径并取消引用结果后,从 JSON 列返回值;等效于 '''JSON_UNQUOTE(JSON_EXTRACT())'''。 |- | / || 除法操作符 |- | ''':=''' || '''赋值''' |- | = || 分配一个值(作为SET语句的一部分或UPDATE语句的SET子句的一部分) |- | = || 等于运算符 |- | ^ || 位运算“异或” |- | AND, && || 逻辑“AND” |- | BETWEEN...AND... || 值是否在值范围内 |- | BINARY || 将字符串转换为二进制字符串 |- | CASE || Case 运算符【?】 |- | DIV || 整数除法 |- | IN() || 一个值是否在一组值内 |- | IS || 针对布尔值测试值 |- | IS NOT || 针对布尔值测试值 |- | IS NOT NULL || 非空值测试 |- | IS NULL || 空值测试 |- | LIKE || 简单模式匹配 |- | NOT, ! || Negates value |- | NOT BETWEEN ... AND ... || 值是否不在值范围内 |- | NOT IN() || 一个值是否不在一组值内 |- | NOT LIKE || 否定简单模式匹配 |- | NOT REGEXP || 非“REGEXP” |- | OR, <nowiki>||</nowiki> || 逻辑“OR” |- | REGEXP || 字符串是否匹配正则表达式 |- | RLIKE || 字符串是否匹配正则表达式 |- | SOUNDS LIKE || Compare sounds【???】 |- | XOR || 逻辑“XOR” |- | <nowiki>|</nowiki> || 按位“或” |- | <nowiki>~</nowiki> || 按位“取反” |} == 运算符优先级 == 运算符优先级:(由高到低,同行同级) <syntaxhighlight lang="xml"> INTERVAL BINARY, COLLATE ! - (一元减法), ~ (一元按位取反) ^ *, /, DIV, %, MOD -, + <<, >> & | = (比较), <=>, >=, >, <=, <, <>, !=, IS, LIKE, REGEXP, IN BETWEEN, CASE, WHEN, THEN, ELSE NOT AND, && XOR OR, || = (赋值), := </syntaxhighlight> * “=”的优先级取决于它是用作比较运算符(=)还是用作赋值运算符(=)。 一些运算符的优先级和含义取决于 SQL 模式: * 默认情况下,“||”是逻辑OR运算符。启用“PIPES_AS_CONCAT”时【???】,“||”是字符串连接,优先级在“^”和一元运算符之间。 * 默认情况下,“!”的优先级高于“NOT”。启用“HIGH_NOT_PRECEDENCE”时【???】,“!”和“NOT”具有相同的优先级。 == 比较函数和运算符 == {| class="wikitable" ! Name !! Description |- | > || 大于运算符 |- | >= || 大于或等于运算符 |- | < || 少于运算符 |- | <>, != || 不等于运算符 |- | <= || 小于或等于运算符 |- | '''<=>''' || '''NULL 安全等于运算符'''【类似于“=”运算符。但是,如果两个操作数均为NULL,则返回 1 而不是 NULL,如果一个操作数为 NULL 则返回 0 而不是 NULL】 |- | = || 等于运算符 |- | BETWEEN ... AND ... || 值是否在值范围内 |- | '''COALESCE()''' || '''返回第一个非 NULL 参数'''【如果没有非 NULL 值,则返回 NULL】 |- | '''GREATEST()''' || '''返回最大参数'''【具有两个或更多参数,返回最大(最大值)参数】【使用与“LEAST()”相同的规则比较参数】 |- | IN() || 一个值是否在一组值内 |- | '''INTERVAL()''' || '''返回小于第一个参数的参数的索引'''【对于“INTERVAL(N,N1,N2,N3,...)”,如果 N<N1 则返回0,如果 N<N2 则返回1,以此类推;如果 N 为 NULL则返回 -1。所有参数均视为整数。】 |- | IS || 针对布尔值测试值 |- | IS NOT || 针对布尔值测试值 |- | IS NOT NULL || 非空值测试 |- | IS NULL || 空值测试 |- | '''ISNULL()''' || '''测试参数是否为 NULL''' |- | '''LEAST()''' || '''返回最小的参数'''【具有两个或更多参数,返回最小(最小值)参数】【使用与“GREATEST()”相同的规则比较参数】 |- | LIKE || 简单模式匹配 |- | NOT BETWEEN ... AND ... || 值是否不在值范围内 |- | NOT IN() || 一个值是否不在一组值内 |- | NOT LIKE || 否定简单模式匹配 |- | '''STRCMP()''' || '''比较两个字符串''' |} * 比较操作得出的值为'''1(TRUE)''','''0(FALSE)'''或'''NULL'''。这些操作适用于数字和字符串。字符串会自动转换为数字,数字会根据需要转换为字符串。 == 逻辑运算符 == {| class="wikitable" ! Name !! Description |- | AND, && || 逻辑“与” |- | NOT, ! || 逻辑“非” |- | OR, <nowiki>||</nowiki> || 逻辑“或” |- | XOR || 逻辑“异或”【简单来说:“相同为 0,相异为 1”】 |} * 在 SQL 中,所有逻辑运算符的求值结果均为 TRUE,FALSE 或 NULL(UNKNOWN)。在 MySQL 中,这些实现为 1(TRUE),0(FALSE) 和 NULL。尽管其中有些服务器可能会返回 TRUE 的任何非零值,但大多数情况对于不同的 SQL 数据库服务器来说是常见的。 * “XOR”:如果两个操作数均为 NULL,则返回 NULL。对于非 NULL 操作数,如果'''奇数个操作数不为零,则求值为 1,否则返回0'''。 *: <syntaxhighlight lang="xml"> 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 </syntaxhighlight> ** “a XOR b”在 math 上等于“(a AND (NOT b)) OR ((NOT a) and b)”。 == 赋值运算符 == {| class="wikitable" ! Name !! Description |- | := || 赋值 |- | = || 分配一个值(作为SET语句的一部分或UPDATE语句的SET子句的一部分) |} * “:=”运算符永远不会解释为比较运算符。 * 在“UPDATE”语句的“SET”子句中,“=”也充当赋值运算符(与“:=”相同)。
返回至“
MySQL 函数和运算符:运算符
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
笔记
服务器
数据库
后端
前端
工具
《To do list》
日常
阅读
电影
摄影
其他
Software
Windows
WIKIOE
所有分类
所有页面
侧边栏
站点日志
工具
链入页面
相关更改
特殊页面
页面信息