在开始本篇之前需要准备较多的数据。本系列是按照燕十八老师的内容和顺序整理的。练习所需的数据库按照这篇文章中的说明建立。表的结构如图:
goods表.jpgwhere 匹配
运算符
比较运算符
-
查询主键为 32 的商品(=):
select goods_id,goods_name,shop_price from goods where goods_id = 32;
-
查询不属于第 3 个栏目的所有商品(!= <>):
不等于使用 != 或者 <>
select goods_id,cat_id,goods_name,shop_price from goods where cat_id!=3;
-
本店价格高于 3000 的商品(>):
select goods_id,goods_name,shop_price from goods where shop_price > 3000;
-
本店价格低于或100元的商品(<=):
select goods_id,goods_name,shop_price from goods where shop_price <= 100;
-
在不使用 or 的情况下,取出第 4 栏目和第 11 栏目的所有商品( in ):
select goods_id,cat_id,goods_name,shop_price from goods where cat_id in (4,11);
-
在不使用 and 的情况下,取出价格在 100<=价格<=500 的商品(between...and):
select goods_id,goods_name,shop_price from goods where shop_price between 100 and 500;
in 表示在集合 (4,11) 中,between表示在 4-11 之间,包括边界值
逻辑运算符
-
取出不属于第 3 个栏目且不属于第 11 个栏目的商品,用 not in 和 and 分别实现:
select goods_id,cat_id,goods_name,shop_price from goods where cat_id not in (3,11);
select goods_id,cat_id,goods_name,shop_price from goods where cat_id!= 3 and cat_id!=11;
-
取出价格大于 100 且小于 300,或者大于 4000 且小于 5000 的商品(and 、or):
select goods_id,goods_name,shop_price from goods where shop_price > 100 and shop_price < 300 or shop_price > 4000 and shop_price < 5000;
MySQL 中 and 的优先级比 or 高
-
取出第三个栏目下价格小于 1000 或者大于 3000,且点击量大于 5 的系列商品:
select goods_id,cat_id,goods_name,shop_price,click_count from goods where cat_id = 3 and click_count >= 5 and (shop_price < 1000 or shop_price > 3000);
模糊查询
-
取出所有以“诺基亚”开头的商品:
select goods_id,goods_name,shop_price from goods where goods_name like '诺基亚%';
-
取出名字以“诺基亚N”开头,后面只有两个字符的商品:
select goods_id,goods_name,shop_price from goods where goods_name like '诺基亚N__';
% 通配任意字符,_ 通配单个字符
网友评论