亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問怎么取出每個類別(category_id)產品的最近添加的(goods_addtime)三條數?

請問怎么取出每個類別(category_id)產品的最近添加的(goods_addtime)三條數?

C++ C
慕碼人2483693 2022-05-13 20:11:13
若表結構如下:create table goods(goods_id int primary key,category_id int,goods_name varchar(20),goods_addtime int unsigned)engine myisam charset utf8;
查看完整描述

3 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

首先你這個表里有一個小問題,你的goods_addtime這個字段最好使用time型。
然后你的這個需求可以這么寫:
SELECT A1.*
FROM goods AS A1
INNER JOIN (SELECT A.category_id,A.goods_addtime
FROM goods AS A
LEFT JOIN goods AS B
ON A.category_id = B.category_id
AND A.goods_addtime <= B.goods_addtime
GROUP BY A.category_id,A.goods_addtime
HAVING COUNT(B.goods_addtime) <= 3
) AS B1
ON A1.category_id = B1.category_id
AND A1.goods_addtime = B1.goods_addtime
ORDER BY A1.category_id,A1.goods_addtime DESC
我這個語句也有一點問題。如果你這個goods_addtime字段堅持要用int的話,那我這個語句沒法返回正確結果。但是要是改成time的話是可以返回的。

查看完整回答
反對 回復 2022-05-16
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

SELECT * from (
SELECT t.*,@num := if(@category_id = t.category_id, @num + 1,1) as cal_rank,@category_id:=t.category_id from
(SELECT * from goods ORDER BY category_id asc ,goods_addtime desc) t,
(SELECT @num := 0) t1,(SELECT @category_id := 0) t2
) t3 where t3. cal_rank <4

查看完整回答
反對 回復 2022-05-16
?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

select * from goods ordery goods_addtime desc limit 3;

查看完整回答
反對 回復 2022-05-16
  • 3 回答
  • 0 關注
  • 275 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號