MySql中的随机行

fslejnso  于 2023-08-02  发布在  Mysql
关注(0)|答案(2)|浏览(81)

我在MySQL数据库中有一个表,有数千条记录。结构如下


的数据
这里的“难度”列有三个可能的值,分别是A、B和C。
问题是我需要从整个表中检索10个随机行,其中4行是难度类型A,4行是难度类型B,其余2行是难度类型C。
我想通过一个电话就能实现这一点。我不擅长写SQL查询和寻找一些指导。
谢谢你,

8yparm6h

8yparm6h1#

不确定我是否完全理解你的问题,但我想这就是你想要的。

(
  SELECT * FROM your_table
  WHERE difficulty = 'A'
  ORDER BY RAND()
  LIMIT 4
)
UNION ALL
(
  SELECT * FROM your_table
  WHERE difficulty = 'B'
  ORDER BY RAND()
  LIMIT 4
)
UNION ALL
(
  SELECT * FROM your_table
  WHERE difficulty = 'C'
  ORDER BY RAND()
  LIMIT 2
)

字符串
它由三个单独的SELECT语句组成,这些语句由UNION连接。每个SELECT语句检索对应难度类型的指定数量的随机行。

hmae6n7t

hmae6n7t2#

试试这样的方法:

(
  SELECT * FROM table
  WHERE difficulty='A'
  ORDER BY RAND()
  LIMIT 4
)
UNION ALL
(
  SELECT * FROM table
  WHERE difficulty='B'
  ORDER BY RAND()
  LIMIT 4
)
UNION ALL
(
  SELECT * FROM table
  WHERE difficulty='C'
  ORDER BY RAND()
  LIMIT 2
);

字符串

相关问题