我需要在表格中插入一些值。
我可以使用查询(来自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作为例子。
答案 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,以便将新用户插入表中。
希望这会对你有所帮助。