假设我们有收件箱表并且一次最多只能接收 50 条消息,为此我使用以下代码:
$maximum_messages_in_inbox = 50;
$query1 = mysql_query("SELECT * from inbox");
if(mysql_num_rows($query1) > $maximum_messages_in_inbox)
{
echo "Message memmory if full please try again later";
}
else
{
mysql_query("insert into inbox set text = '$text' , sender = '$sender' ");
}
这段代码运行良好,但每次都会执行两个查询。
我的问题是我们能否在单个查询中调整上述目的,例如:
mysql_query("select * from inbox if num > 50 insert else error");
if(error)
{
echo "Message memmory if full please try again later";
}
期待您的合作。谢谢
最佳答案
您可以使用此技巧在 SQL 中执行条件 INSERT
:
INSERT INTO inbox(text, sender)
SELECT 'text value', 'sender value'
FROM dual
WHERE (SELECT COUNT(*) FROM inbox) < 50;
只有满足 WHERE
子句时,INSERT
才会被处理。
关于php - Mysql SELECT,查找行数,然后在单个查询语句中插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30307867/