在一行中插入并选择sql

时间:2014-09-02 07:36:04

标签: php mysql sql

我需要在表格中插入一些值。

我可以使用查询(来自php)轻松完成:

mysql_query('INSERT  INTO `TABLE1`(`user_id`,`value1`,`date`) VALUES("'.$user_id.'",".$value1.",".time().")');

但是这次我没有变量$ user_id。我只有用户名。所以我需要对USERS数据库再做一次查询,以便从user_id等于我的变量的行中获取username

是否可以不进行2次查询?我在一个查询中使用INSERT和SELECT吗?

P.S。我知道mysql_query函数已被折旧。我在这里用jusst作为例子。

2 个答案:

答案 0 :(得分:2)

尝试嵌套子查询:

INSERT  INTO `TABLE1`
    (`user_id`,`value1`,`date`)
VALUES
    (
        (
             SELECT
                 `user_id`
             FROM
                 `user`
             WHERE
                 `username` = 'your-user-name' // should be unique in order to work
        ),
        'value1',
        NOW()
    );

答案 1 :(得分:1)

以下查询可能是您正在寻找的内容,但首先获取user_id然后继续插入可能会更好:

INSERT INTO TABLE1 (user_id, value1, date)
SELECT MAX(user_id) + 1 -- If the user_id is an numeric value...
    ,'user-name-here'
    ,NOW()
FROM TABLE1

通过此查询,我从表中获取最后一个user_id,并将其递增1,以便将新用户插入表中。

希望这会对你有所帮助。