私はPHPコードを作成しており、クエリの条件に問題があります。また、あなたが私のことを教えてもらえれば、Mysqlのストアドプロシージャを使ってこれを実現することができます。
私の仕事は、ユーザーの外部キーが存在しない場合にINSERTクエリを実行することです。ユーザーの外部キーが「User_ID」列に存在する場合は、それを更新します。
しかし、ここでは、データベース内のカラム 'User_ID'にユニークな条件を置くことができます。したがって、重複イベントはデータベースから発生しません。
次のクエリはこのエラーを示しています
SQL構文に誤りがあります。ユニークキーがUSER_IDは「23 NOT IN(ボイスメールFROM USER_IDを選択)WHEN ELSE UPDATEボイスメールSET URG」をライン3INSERT IF EXIST 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..!";
は、あなたが(http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html [DUPLICATE KEY UPDATE INSERT ... ON]の後にあるのに役立ちます)? – cmbuckley
Mysqlは、 'INSERT .. ELSE UPDATE ... 'をサポートしていません。単純に 'INSERT .. DUPLICATE KEY UPDATE ...'を実行するだけです。http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html – ajreal
はい..!しかし、ここで私は、データベース内のカラム 'User_ID'にユニークな条件を置くことができます。だから、データベース –