gpt4 book ai didi

php - Mysql使用不同的过滤参数选择相同数量的记录

转载 作者:行者123 更新时间:2023-11-29 21:43:14 24 4
gpt4 key购买 nike

我正在用 php 开发抽奖项目,我需要的是以下内容,我有 4000 个用户,选择应如下所示:

EMP_ID
------
1123
1420
1340
2301
2330
4430
4321
3456
3425
7753
4256
4895

如您所见,我有不同数量的用户;他们要求我在每次抽奖中选择 1000 个用户,但这 1000 个用户应该在员工 ID 之间平均分配,例如从以 1 开头的员工中选择 200 行,从以 2 开头的员工中选择其他 200 行,依此类推。

我完成了这个任务,但是使用了多个选择语句,比如从以 1 开头的员工中随机选择 200 行,并为以 2 开头的员工选择另一个 SQL ......;有没有更好的解决方案可以在一条 SQL 语句中完成此任务?

最佳答案

如果有人对@strawberry的建议感兴趣,那就是这样的

    select x.* from 
((SELECT a.`emp_id` FROM `emp_list` as a WHERE a.`flag` = '0' AND a.`emp_id` LIKE '1%' order by RAND() limit 200)
UNION
(SELECT b.`emp_id` FROM `emp_list` as b WHERE b.`flag` = '0' AND b.`emp_id` LIKE '2%' order by RAND() limit 200)
UNION
(SELECT c.`emp_id` FROM `emp_list` as c WHERE c.`flag` = '0' AND c.`emp_id` LIKE '3%' order by RAND() limit 200)
UNION
(SELECT d.`emp_id` FROM `emp_list` as d WHERE d.`flag` = '0' AND d.`emp_id` LIKE '4%' order by RAND() limit 200)
UNION
(SELECT g.`emp_id` FROM `emp_list` as g WHERE g.`flag` = '0' AND g.`emp_id` LIKE '7%' order by RAND() limit 200)
) as x order by RAND()

关于php - Mysql使用不同的过滤参数选择相同数量的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34316899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com