gpt4 book ai didi

MySQL ORDER BY RAND() LIMIT 和组合

转载 作者:行者123 更新时间:2023-11-29 18:19:10 30 4
gpt4 key购买 nike

我有 2 个表(tmp1,tmp2)。每个表仅包含唯一的(产品)_id。我需要创建一个查询,以便从表 tmp2 中为表 tmp1 中的每个 ID 获取固定和随机数量的 ID。我已经用 GROUP_CONCAT 尝试过,但出现错误:

SELECT p.products_id,
GROUP_CONCAT((SELECT tmp2.products_id FROM tmp2 tmp2 ORDER BY RAND() LIMIT 12))
FROM tmp1 tmp1
GROUP BY tmp1.products_id
LIMIT 1

“子查询返回多条记录”

这就是我需要的结果。

示例:

<小时/>
ID tmp1 | ID tmp2    
1 | 103,204,867,547,354,514,541
2 | 542,245,876,542,681,248,428

最佳答案

最终在函数的帮助下到达了那里

DELIMITER $$
CREATE FUNCTION randomness() RETURNS VARCHAR(10000)
NOT DETERMINISTIC
BEGIN
DECLARE randomnum VARCHAR(500);

SELECT GROUP_CONCAT(ID)
INTO randomnum
FROM (
SELECT ID
FROM tmp2
ORDER BY RAND()
LIMIT 12
) a;
RETURN randomnum;
END $$
DELIMITER ;

SELECT *,
(SELECT randomness())
FROM tmp1

根据您下面的最后评论,结果可以添加到新表中,如下所示:

CREATE TABLE tmp3
(
ID INT,
RandomNums VARCHAR(255)
)

INSERT INTO tmp3
SELECT *,
(SELECT randomness())
FROM tmp1

关于MySQL ORDER BY RAND() LIMIT 和组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46743699/

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