1

以下に示すように、2つのテーブルがあります。

coin
----
chanceNo
userID
coin_code
date

coin2
----
chanceNo
userID
coin_code
date

以下に示すように、「12345」がどのテーブルのどこにあるかを見つけるための私のクエリ(これは正しく、成功した検索と一致です)、

SELECT coin_code from coin WHERE coin_code='12345' UNION 
Select coin_code from coin2 WHERE coin_code='12345';

ただし、検索後にクエリを更新することにこだわっています。coin_code='12345' を見つけた後、どうすれば更新できますか。

基本的な更新クエリがこのようなものであることは知っていますが、

UPDATE coin2 SET userID='name', date='12-12-12' WHERE coin_code='12345'

しかし、「12345」が別のテーブルにある場合はどうでしょうか? このクエリの書き方を教えてください。

4

2 に答える 2

2

このクエリは、coin_code が見つかったテーブルを示します。

SELECT "coin" which_table, coin_code
FROM coin
WHERE coin_code = '12345'
UNION
SELECT "coin2" which_table, coin_code
FROM coin2
WHERE coin_code = '12345'

テーブル名がわかったので、それを UPDATE クエリに置き換えることができます。

$row = mysqli_fetch_assoc($sel_stmt);
$upd_stmt = mysqli_prepare("UPDATE {$row[which_table]} SET userID = ?, date = ? WHERE coin_code = ?");
于 2012-10-25T05:24:18.343 に答える
1

バーマーの答えを拡張すると、次のようなことができます。

$sql="SELECT 'coin' which_table, coin_code
      FROM coin
      WHERE coin_code = '12345'
      UNION
      SELECT 'coin2' which_table, coin_code
      FROM coin2
      WHERE coin_code = '12345'";
$result = mysqli_query($sql);
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){

     //Now updating the table
     $sql_update = "UPDATE {$row['which_table']} SET userID='name', date='12-12-12' 
               WHERE coin_code='{$row['coin_code']}'";
     mysqli_query($sql_update);
}
于 2012-10-25T05:36:24.310 に答える