Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.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
Mysql 插入表格选择&;追加一列_Mysql_Sql_Sqlite - Fatal编程技术网

Mysql 插入表格选择&;追加一列

Mysql 插入表格选择&;追加一列,mysql,sql,sqlite,Mysql,Sql,Sqlite,请看我的查询: INSERT INTO sessions (userId, workstationId, duration, actionType) SELECT userId, workstationId, duration FROM activeSessions WHERE workstationId = ? select语句包含的数据不足,无法推送到会话中。我还想插入一个actionType(作为一个参数(?)。也就是说,我需要在select语句结果的右侧附加一列

请看我的查询:

INSERT INTO sessions (userId, workstationId, duration, actionType)
    SELECT userId, workstationId, duration
    FROM activeSessions
    WHERE workstationId = ?

select语句包含的数据不足,无法推送到
会话中。我还想插入一个actionType(作为一个参数(
)。也就是说,我需要在select语句结果的右侧附加一列,以使其生效。这是如何完成的?

您可以在mysql select中使用伪值:

INSERT INTO sessions (userId, workstationId, duration, actionType)
    SELECT userId, workstationId, duration, 'actionType' as actionType
    FROM activeSessions
    WHERE workstationId = ?
对于不同的参数,也可以在选择查询中使用select

INSERT INTO sessions (userId, workstationId, duration, actionType)
        SELECT userId, workstationId, duration, 
        (select id from actionTypeTable where id = ?) as actionType
        FROM activeSessions
        WHERE workstationId = ?

假设查询驻留在过程中,则可以添加这些参数

INSERT INTO sessions (userId, workstationId, duration, actionType)
    SELECT userId, workstationId, duration, @actionType
    FROM activeSessions
    WHERE workstationId = @workstationId 

相同的actionType,还是不同?@jarlh每次都不同。我希望这是一个参数。op希望不同的actionType值作为参数。谢谢!一旦时间限制过了,我会接受。我想我可以将它设置为参数?@jarlh如果它可以是伪数据,它也可以是一个参数