我有 2 个表:带有列的用户(id、用户名、密码)和带有列的 user_failed(user_id、failed、time)。有什么可能的方法可以只使用用户名插入表 user_failed 吗?我尝试使用此代码,但失败了:
INSERT INTO `login_attempts`(`user_id`, `time`, `failed`)
VALUES (SELECT user_id FROM users WHERE username = 'pokemon','',3)
最佳答案
由于多种原因,您的 SQL 查询不正确。
如果我正确解释了您的查询,以下内容应该有效。
INSERT INTO `login_attempts`(`user_id`, `time`, `failed`)
SELECT id, '', 3 FROM users WHERE username = 'pokemon'
INSERT
从 SELECT
进入表不需要 VALUES ( ... )
。以下是如何使用 VALUES ( ... )
的示例:INSERT INTO `login_attempts`(`user_id`, `time`, `failed`)
VALUES (1, '', 3)
此外,您的子查询
SELECT user_id FROM users WHERE username = 'pokemon','',3
WHERE
子句无效。具体来说,我假设的 '',3
部分是您想要为 time
和 failed
插入的值。关于mysql - 在mysql中使用SELECT插入值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38540241/