相似点:
我有一个表test928,里面有一个字段叫mobile,查找里面189开头的所有手机号码:
SELECT * FROM `test928` having mid(`mobile`,1,3) =189
也可以用:
SELECT *
FROM `test928`
WHERE left( `mobile` , 3 ) =189
那 having 和 where 区别在哪呢?
我翻看了 w3c网站说:在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用。
理解了一下:
SELECT * FROM `mj_payment_order_list` group by username where sum(`order_amount`)>1000 无效
SELECT * FROM `mj_payment_order_list` group by username having sum(`order_amount`)>1000 有效。