Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQL从另一个表插入随机值_Php_Mysql_Sql_Database_Sqlite - Fatal编程技术网

Php MySQL从另一个表插入随机值

Php MySQL从另一个表插入随机值,php,mysql,sql,database,sqlite,Php,Mysql,Sql,Database,Sqlite,您好,我想将一些随机值从一个表插入到另一个表。我的查询如下所示: INSERT INTO `rounds`(`matchID`, `questionOneID`, `questionTwoID`, `questionThreeID`) VALUES (17,(SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 3)) 问题是,mysql需要4个参数(matchID、questionOneID,…),但只得到两个(17,(…)),我如何告诉mys

您好,我想将一些随机值从一个表插入到另一个表。我的查询如下所示:

INSERT INTO `rounds`(`matchID`, `questionOneID`, `questionTwoID`, `questionThreeID`) VALUES (17,(SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 3))
问题是,mysql需要4个参数(matchID、questionOneID,…),但只得到两个(17,(…)),我如何告诉mysql它从SELECT中获得3个参数? 我真的必须:

INSERT INTO `rounds`(`matchID`, `questionOneID`, `questionTwoID`, `questionThreeID`) VALUES (17,(SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 1),(SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 1),(SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 1))

或者有更好的方法吗?

您的查询看起来是正确的。我会用
insert。选择

INSERT INTO `rounds`(`matchID`, `questionOneID`, `questionTwoID`, `questionThreeID`)
     SELECT 17,
            (SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 1),
            (SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 1),
            (SELECT `id` FROM `questions` ORDER BY RAND() LIMIT 1);
如果你想保证这三个问题是不同的,那么我可以选择这种方法:

INSERT INTO `rounds`(`matchID`, `questionOneID`, `questionTwoID`, `questionThreeID`)
    SELECT 17,
           substring_index(group_concat(id order by rnd), ',', 1),
           substring(substring_index(group_concat(id order by rnd), ',', 2), ',', 11),
           substring_index(group_concat(id order by rnd), ',', -1),
    FROM (SELECT id, rand() as rnd FROM questions ORDER BY RAND() LIMIT 3) q
这将在一行上放置三个随机问题,没有重复项(除非
id
questions
中重复)