2017-11-19MySQL子句的查询陷阱

您现在的位置是: 首页 > MySQL技术 > MySQL子句的查询陷阱

387次阅读

一、认识子句的查询顺序


select后的子句 where, group by, having, order by, limit


5种子句是有严格的顺序的

where,group by,having,order by,limit
这5种子句可以选择的写其中几种,但是顺序要按照上面的顺序来


查询每个栏目下最新的产品,goods_id 最大即为最新,要求: 只出现 1 次 select 查询

只用一条select语句是无法查询出来的

二、常见的错误一


虽然能查出内容,但是语句是有问题的

select max(goods_id),goods_name,cat_id from goods group by cat_id;

取出的每行的内容是不正确的,goods_id正确,但是对应的goods_name确实不对的;它取出的是,按照cat_id分组排序后,第一个出现行的goods_name


三、常见错误二


先按照goods_id排序再分组

select max(goods_id),goods_name,cat_id from goods order by goods_id desc group by cat_id;

# 语法错误

一条select 解决不了,就必须要用子查询或连接查询等