从一个表中选择行并添加到新表

时间:2015-04-15 08:35:44

标签: php mysql

我正在尝试创建一个名为'quiz'的新表,并将现有问题表中的指定行插入到测验表中。我希望能够选择要包含在给定测验中的哪些问题,因此IN(13,14,15)。我还想动态创建一个新表而不是使用预先存在的表。我正在尝试使用下面的查询,但它不起作用。

CREATE TABLE `quiz` 
  ( 
     ID           INT(11), 
     question     MEDIUMTEXT, 
     output       MEDIUMTEXT, 
     functionname TINYTEXT, 
     p_args       TINYTEXT, 
     r_args       TINYTEXT, 
     hint         MEDIUMTEXT, 
     score        INT(255), 
     PRIMARY KEY (ID) 
  );

SELECT from * `questions` where id IN (13, 14, 15);

这就是我的问题表: http://i.stack.imgur.com/OULZn.jpg

我已经在那里待了2个小时,我尝试过很多东西,但是它不起作用。我开始认为这不是正确的方法。

4 个答案:

答案 0 :(得分:3)

只要您的所有列都匹配

SELECT * FROM `questions` WHERE ID IN (13, 14, 15)

应该解决它

答案 1 :(得分:1)

您的选择查询

SELECT FROM * `questions` WHERE ID IN (13, 14, 15)

它的错误

使用

SELECT * FROM `questions` WHERE ID IN (13, 14, 15)

答案 2 :(得分:1)

您的查询

$sql = "CREATE TABLE `quiz`(ID int(11), question mediumtext, output mediumtext, functionname tinytext, p_args tinytext, r_args tinytext, hint mediumtext, score int(255), PRIMARY KEY (ID)) SELECT FROM * `questions` WHERE ID IN (13, 14, 15)"

改为使用

  $sql = "CREATE TABLE `quiz`(ID int(11), question mediumtext, output mediumtext, functionname tinytext, p_args tinytext, r_args tinytext, hint mediumtext, score int(255), PRIMARY KEY (ID)) SELECT * from `questions`WHERE ID IN (13, 14, 15)"

答案 3 :(得分:-1)

如果您完全访问MySQL服务器,只需转储表,通过notepad ++编辑转储文件。通过编辑,您将更改表的名称,并删除您不喜欢的行。午餐后编辑的文件和瞧。