1

我发布了一个与此类似的问题,该问题是关于删除的,这是关于插入的。

你好,

我正在使用 SQL 数据库在 PHP 中制作一个小型消息传递应用程序,但遇到了一个小问题。我会尽力解释这一点,所以这里......

我有一个名为“用户”的表,如下所示:

ID | Username | Password | Email 
-------------------------------------------
1  | Account1 | Pass 1   | email1@mail.com
2  | Account2 | Pass 2   | email2@mail.com

然后我有另一个称为“朋友”,如下所示:

UserID | FriendID
------------------
   1   |     2    

所以我需要的是一个查询,如果在“用户”表中满足条件,它将数据插入“朋友”表

例子:

INSERT INTO 'friends' VALUES('$UserID', '$FriendID') IF (users.Password = $Password WHERE users.ID = $UserID)

我希望这是一个足够好的解释,但我发现这很难解释。

感谢您的帮助 :)

4

3 回答 3

4

这可能会做

INSERT INTO friends (userID, friendID)
SELECT $userID, $friendID
FROM users
WHERE (users.password = $password) and (users.id = $userid)

如果 where 子句匹配,则无论匹配多少行,您都会插入许多行,并且由于您选择的是硬编码值而不是字段,因此您只需将这些值插入到朋友表中。

于 2012-11-07T20:33:46.437 回答
1

尝试:

 INSERT INTO friends VALUES('$UserID', '$FriendID') where UserID in (Select ID from Users where users.Password = '$passoword' and users.ID = '$UserID')
于 2012-11-07T20:34:58.273 回答
0

您需要将条件逻辑放在应用程序中,而不是 SQL 中。您的应用程序代码本身应负责确定是否应执行 INSERT。

于 2012-11-07T20:30:51.013 回答