MySQ条件查询

来源: 2024-07-06 00:32:47 播报

一、where语句

where语句表条件过滤。满足条件操作,不满足不操作,多用于数据的查询与修改。

格式:

select 字段 from 表名 where 条件;

示例:

select * from test where id='1';

二、in语句

in常用于where表达式中,其作用是查询某个范围内的数据。

格式:

select * from where field in (value1,value2,value3,…);

示例:

select * from book where id in (2,4);

三、not in语句与in语句作用相反

格式:

select * from where field not in (value1,value2,value3,…);

示例:

select * from book where id not in (2,4);

四、is NULL、ISNULL()和IFNULL()

在查询过程中,我们经常用到非空和is null的查询,为了更高效的查询,我们应该知道那种方法更快。

is NULL查询

格式:

SELECT * from 表名 where 字段名 is NULL;

ISNULL()查询

格式:

SELECT * from 表名 where ISNULL(字段名);

IFNULL() 查询

格式:

SELECT * from 表名 where IFNULL(字段名,'0') = '0';

说明: 查询空值的运行速度基本上为IFNULL()>is NULL>ISNULL()。

五、AND 和 OR

可在 WHERE 子语句中把两个或多个条件结合起来。

1、使用OR关键字

只要符合这几个查询条件的其中一个条件,这样的记录就会被查询出来。如果不符合这些查询条件中的任何一条,这样的记录将被排除掉。

2、使用and关键字

需要符合所有条件,这样的记录就会被查询出来。如果有任何一个条件不符合,这样的记录将被排除掉。

3、AND 与 OR 优先级: 在where中可以包含任意数目的and和or操作符,在没有任何其他符号的时候,例如括号,SQL会首先执行and条件,然后才执行or语句。

示例:

select * from table from id=1 or id=2 and price>=10;

说明:这条语句默认执行的是id=2并且price大于等于10的,或者是id=1。

如果加上括号:

示例:

select * from table from (id=1 or id=2) and price>=10;

说明:则这条语句执行的是id=1或id=2,并且price大于等于10。

六、条件表达式

where子句件查询: 可按照“条件表达式”指定的条件进行查询。

where常用运算符:

比较运算符:

< 表示: 小于

<= 表示: 小于或等于

= 表示: 等于

!= 或 <> 表示: 不等于

= 表示: 大于等于

表示: 大于

in 表示: 在某集合内

between 表示: 在某范围内

逻辑运算符

not 或 ! 表示: 逻辑非

or 或 || 表示: 逻辑或

and 或 && 表示: 逻辑与