mysql_query(“INSERT INTO withdraw(用户名,金额,日期)SELECT用户名,金额,NOW()FROM accounts WHERE username ='$ username'UPDATE accounts SET amount = 0 WHERE username ='$ user'”)
我想在插入后更新数据,但此查询无法正常工作
答案 0 :(得分:1)
只需将您需要插入的所有列放入选择部分
INSERT INTO withdraw (username, amount, some_date)
SELECT username, amount, now()
FROM accounts
WHERE username='$username';
答案 1 :(得分:0)
语法应如何 -
INSERT INTO Table2
(client_last_name, client_first_name, taskDescription, category)
(SELECT clientLastName, clientFirstName, incidentDescription, category
FROM Table1
WHERE info_field IS NOT NULL)
建议:避免使用mysql_ *函数,因为它们在最近的PHP版本中已弃用。了解mysqli prepared statement
或PDO
并开始实施。
答案 2 :(得分:0)
在我看来,你可以将你的陈述分成两部分。假设你想让NOW()成为所有插入行中的当前日期(我在SQL Server中编写,因为我无法在MySQL中编写,如果可以请尝试将其转换为MySQL):
@date=NOW();
INSERT INTO withdraw (username,amount) SELECT username,amount FROM account WHERE
username=@username;
UPDATE withdraw
SET date=@DATE where ID=@@IDENTITY
如果您的表具有IDENTITY ID列。在MySQL中,它是自动递增的,适当的函数是SCOPE_IDENTITY()
(在MySQL中选择最后插入的ID,你可以谷歌获取更多信息)