我在寫PHP代碼並遇到查詢條件問題。另外如果你可以告訴我如何通過在Mysql中使用Stored Procedure來實現這一點,那將會非常好。
如果用戶外鍵不存在,我的任務是運行INSERT查詢。如果用戶foreign ke存在於「User_ID」列中,則更新它。
但是在這裏我可以在數據庫中的'User_ID'列上添加唯一條件。所以數據庫不會發生重複的事件。
以下查詢顯示此錯誤
您的SQL語法錯誤;檢查對應於你的MySQL服務器版本在3號線INSERT IF EXIST UPDATE使用PHP和存儲過程的表
$result=mysql_query("select * from Users",$con);
while($row= mysql_fetch_array($result))
{
$info=getVM($row['Ext'],$ast);
$info[3]=$row['User_ID']; // To insert User_ID from Users table
$query="INSERT INTO VoiceMail (Urgent, New, Old, User_ID)
VALUES ($info[0],$info[1],$info[2],$info[3])
WHEN $info[3] NOT IN (SELECT User_ID FROM VoiceMail)
ELSE UPDATE VoiceMail SET Urgent=$info[0], New=$info[1], Old=$info[2] WHERE User_ID=$info[3]";
if (!mysql_query($query,$con))
{
die('Error: ' . mysql_error());
}
else echo "Database Updated..!";
你是在追求[INSERT ...對重複密鑰更新](http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html )? – cmbuckley 2012-03-30 22:38:03
Mysql不支持'INSERT .. ELSE UPDATE ...'。你可以簡單地做'INSERT ..在DUPLICATE KEY UPDATE ...'http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – ajreal 2012-03-30 22:38:15
是的..!但在這裏我可以在數據庫中的'User_ID'列上添加唯一條件。因此,數據庫 – 2012-03-30 22:40:01