mysql取商_mysql 从五个指定的分类cid中随机取出5个商品,mysql怎么写?

CREATE TABLE item ( cid INT, title varchar(10) );

INSERT INTO item VALUES(50010167, '标题1');

INSERT INTO item VALUES(50000436, '标题2');

INSERT INTO item VALUES(50008881, '标题3');

INSERT INTO item VALUES(50008882, '标题4');

INSERT INTO item VALUES(50011123, '标题5');

INSERT INTO item VALUES(50010167, '标题6');

INSERT INTO item VALUES(50000436, '标题7');

INSERT INTO item VALUES(50008881, '标题8');

INSERT INTO item VALUES(50008882, '标题9');

INSERT INTO item VALUES(50011123, '标题10');

INSERT INTO item VALUES(50010167, '标题11');

INSERT INTO item VALUES(50000436, '标题12');

INSERT INTO item VALUES(50008881, '标题13');

INSERT INTO item VALUES(50008882, '标题14');

INSERT INTO item VALUES(50011123, '标题15');

INSERT INTO item VALUES(50010167, '标题16');

INSERT INTO item VALUES(50000436, '标题17');

INSERT INTO item VALUES(50008881, '标题18');

INSERT INTO item VALUES(50008882, '标题19');

INSERT INTO item VALUES(50011123, '标题20');

SELECT

allData.cid,

`title`

FROM

(

SELECT

CASE

WHEN @cn != cid THEN @rownum:= 1

ELSE @rownum:= @rownum + 1

END AS No,

cid,

@cn := cid AS cid,

`title`

FROM

(SELECT @rownum:=0) r,

(SELECT @cn:=0) p,

`item`

WHERE

`cid` in(50010167,50000436,50008881,50008882,50011123)

ORDER BY

cid

) allData,

(

SELECT

cid,

FLOOR(1 + ( RAND() * count(cid) )) AS randNO

FROM

`item`

WHERE

`cid` in(50010167,50000436,50008881,50008882,50011123)

GROUP BY

cid

) randData

WHERE

allData.cid = randData.cid

AND allData.NO = randData.randNO;

执行结果:

+----------+--------+

| cid      | title  |

+----------+--------+

| 50000436 | 标题12 |

| 50008881 | 标题8  |

| 50008882 | 标题19 |

| 50010167 | 标题1  |

| 50011123 | 标题5  |

+----------+--------+

5 rows in set (0.00 sec)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值