过滤数据 WHERE
SELECT * FROM user_basic WHERE id =2;
检索表中 id为2的数据;
WHERE和排序ORDER BY一起使用时,ORDER BY必须使用在WHERE之后
WHERE之后支持的符号有
WHERE id > 2; 大于
WHERE id >= 2; 大于等于
WHERE id < 2; 小于
WHERE id <> 2; 或则 WHERE id != 2; 不等于
WHERE id IS NULL; 为空的值
WHERE id BETWEEN; 为空的值
WHERE id BETWEEN 2 AND 6; 检索范围值 Id 2 到 6的值(包含2和6的值)
高级过滤
AND
SELECT * FROM user_basic WHERE id >5 AND user_account > '166';
检索 id 大于2 的数据并且 user_account的值大于166的数据
如果有更多的并条件的检索条件添加 AND 就可以
OR(或)
SELECT * FROM user_basic WHERE id >15 AND user_account > '166' OR id = 2;
当前查询条件前半段id >15 AND user_account > '166' 因为没有id大于15的值整个条件也就不成立了,执行后面的或语句
AND与OR并存的时候最后配置小括号
SELECT * FROM user_basic WHERE id = 2 OR name = '133name' AND user_account != '144';
从该sql语句上看出来正常的执行顺序,应该是获取 id 为 2的数据,但在实际执行中会优先执行 name = '133name' AND user_account != '122'; 然后去执行 OR的语句
sql会优先处理 AND的结构 然后才是OR,所以在检索的时候应该用小括号扩起来
SELECT * FROM user_basic WHERE (id = 2 OR name = '133name') AND user_account != 122 ;
扩展
分页查询并进行排序
SELECT * FROM user_basic ORDER BY created_at DESC LIMIT 100 OFFSET 0;