我正在为我的网站制作一个简单的消息系统功能,登录的成员可以在其中相互发送消息,为此我使用了两个表作者(我的用户表)和消息。它们描述如下:
作者:
aId int(20) NO PRI NULL auto_increment
aUser varchar(30) NO UNI NULL
aPass varchar(40) NO NULL
aEmail varchar(30) NO UNI NULL
aBio mediumtext YES NULL
aReg datetime NO NULL
消息:
msgId int(20) NO PRI NULL auto_increment
mSender int(20) NO MUL NULL
mReciever int(20) NO MUL NULL
mTitle tinytext NO NULL
mBody mediumtext NO NULL
mRead tinyint(4) NO NULL
mDate datetime NO NULL
我在 messages (mReciever) REFERENCES authors(aId)); 中也有一个约束外键;
目前,当登录用户想要向另一个用户发送消息时,html 表单有一个“用户名,消息”输入元素——非常简单。对于提交执行 - 首先,php 脚本使用 select 命令查询 authors 表以检查用户是否存在,然后从结果集中获取用户 id,然后 php 脚本的第二部分可以使用结果集中的 aId消息表上的插入命令。虽然这是可行的,但我想知道是否会有更简化/更优雅的解决方案,或许将两个 MySQL 命令合并为一个以实现相同的结果?
最佳答案
您可以使用子查询:
Insert into Messages (mReceiver, mBody) Values ((select aId from Authors where aUser = @user), @message)
@user 是用户名,@message 是消息。
关于php - MySQL 简化了一个 Select & Update 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15580126/