mysql的三值逻辑
mysql 使用三值逻辑:TRUE FALSE UNKNOWN。
任何与null值的比较都将与第三个值进行比较 UNKNOWN 做比较。这个“任何值”包括 null 本身。
所以mysql 提供了 is null 和 is not null 两种操作对nulll做出特殊判断
因此,在select查询中,如果查询到的值是空的,我们需要在where语句中再做一次
额外的条件判断 ,比如:'name is null';
举个栗子:
返回用户列表,列表中的用户年龄不是18.
select name from user where age <> 18 or age is null
not in
select Name 'Customers' from Customers where Id not in(select CustomerId from Orders)
用于查询不在某个值集中的数据
举个栗子:
查询user表中年龄不在18、15、20的用户
select name from user where age not in(18,15,20)
推荐:数据库介绍
mod(a,b)
SQL的意思是 a / b 如果某个字段需要偶数或奇数,可以使用mod。
以id为例:
mod(id,2)=1 指id是奇数。
mod(id,2)=0 是指id是偶数。
left()
left()函数是一个字符串函数,它返回具有指定长度的字符串的左部分。
格式:left(str,length)。
if(exer,v1,v2)
if是语法结构(exer,v1,v2)
expr是一种表达式,表达式expr结果为ture,返回v1值,返回flasev2。
update salary set sex=if(sex='m','f','m')