構造が同一の 2 つのテーブルがあります。Table1
モデレートされたデータをtable2
保持し、残りを保持します。
表1
+--------+--------+---------------+--------+-------- ---+ | | "ID" | "名前" | "説明" | "タイプ" | "国" | +--------+--------+---------------+--------+-------- ---+ | | "1" | "a" | "×" | "1" | "米国" | | | "2" | "b" | "×" | "1" | "イギリス" | +--------+--------+---------------+--------+-------- ---+
表 2
+-----+----------+-----------------+--------+--- ------+----------+ | | "ID" | "名前" | "説明" | "タイプ" | "国" | "ステータス" | +-----+----------+-----------------+--------+--- ------+----------+ | | "1" | 「タイトル1」 | "説明 1" | "1" | "米国" | "2" | | | "2" | 「タイトル2」 | "説明 2" | "1" | "イギリス" | "2" | +-----+----------+-----------------+--------+--- ------+----------+
table 1
からのデータで更新するために以下のSQLを実行しましたが、table 2
うまくいきました。問題は、モデレーターが更新を承認または拒否できることです。更新を受け入れるには、status
inを に設定table2
し0
ます。に設定すると拒否されます1
。
table1
からへの更新は、モデレーターが に設定してtable2
いる場合にのみ実行する必要があります。そのステータスは、次のようなphpスクリプトから取得されますstatus
0
updatestatus.php?status=0&id=1&country=US
status
受信した0
場合にSQLを実行できますかupdate both tables elseif status = 1 then update only table2 set status = 1 where id=1 and country =us
UPDATE table1 a
INNER JOIN table2 b
ON a.id = b.id
SET a.name = b.name,
a.description = b.description
WHERE a.id=1;
その方法は(大まかに)次のとおりです。
$status = 0;//Php
//sql
if ($status = 0) then (run the above update)
elseif ($status = 1) then (run update for only table2)
テーブル内のデータと一緒に if を使用しても問題ありませんが、どうすればこのようなことができるのでしょうか?
after update
すでにトリガーを使用し
ているため、トリガーを使用できないことに注意してくださいtable2