扫盲 2026.10.31 06:12 20 次浏览 0 条评论

AND OR多条件查询

AND 和 OR 是 WHERE 里最常用的两个连接符。AND 表示「都得满足」,OR 表示「满足一个就行」。

-- 状态正常 且 等级大于10
SELECT * FROM users WHERE status = 1 AND level > 10;

-- VIP 或者 等级大于50,满足一个就查出来
SELECT * FROM users WHERE is_vip = 1 OR level > 50;

重点来了:AND 的优先级比 OR 高。如果混着写又不加括号,条件就很容易连错。

-- 错:实际变成 status=1 AND level>10,或者只要是 vip 就全放出来
SELECT * FROM users WHERE status = 1 AND level > 10 OR is_vip = 1;

-- 对:用括号分组,想查什么一目了然
SELECT * FROM users WHERE status = 1 AND (level > 10 OR is_vip = 1);

PHP 里拼条件也是一个套路,把条件先放进数组,再用 implode 拼起来,比手写一长串靠谱。

<?php
$where = ["status = 1"];                    // 固定条件
if ($kw) $where[] = "(name LIKE '%$kw%' OR nick LIKE '%$kw%')"; // 关键字两字段都搜
$sql = "SELECT * FROM users WHERE " . implode(' AND ', $where);

记住一句:AND 和 OR 混着用,括号一定要加上。

标签:MySQL,SQL查询,数据库

说点什么 0

行思随记

欢迎来到:行思随记