簡體   English   中英

Mysql SELECT,查找行數,然后在單個查詢語句中插入

[英]Mysql SELECT , find number of rows , then INSERT in a single query statement


假設我們有收件箱表,一次最多只能接收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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM