在一行中插入并选择sql


Insert and select in one row sql

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

我可以很容易地使用查询(来自php):

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

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

是否可以不进行2个查询?我在一个查询中遇到INSERT和SELECT?

附言:我知道mysql_query函数贬值了。例如,我在这里用过它。

尝试嵌套子查询:

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()
    );

以下查询可能是您想要的,但最好先获取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,以便在表中插入新用户。

希望这对你有帮助。