この記事では、PHP で中間関連テーブルのデータを更新する 2 つの方法を例の形式で示します。参考のためにみんなで共有してください。具体的な方法は以下の通りです
まず、中間関連付けテーブル: ここでの中間テーブルは、テーブル 1 の主キーとテーブル 2 の主キーのみを、つまり多対多の形式で格納します。
データの追加や削除の実行はフレームワークの内部メソッドであり、アイデア部分には属しません。
方法 1: 最初に古いデータをすべて削除してから、新しいデータを追加します
この方法を使用するデメリット: データを大量に削除するのは安全ではなく、ある程度のセキュリティ リスクがあります。
方法 2: 必要なものだけを追加し、必要なものだけを削除します
この方法の特徴: 対象を絞ったデータの追加と削除。最初の方法よりも安全です
この記事で説明した内容が皆様の PHP プログラミング設計に役立つことを願っています。
p のまま投稿から u.qq,u.name,p.* を選択して、p.name=u.name で u としてユーザーに参加します
UPDATE マルチテーブルの更新 (再投稿) (2008-05-12 15:29:04)
再投稿 ラベル: マルチテーブルの更新 SQL カテゴリー: PHP ネットワーク プログラミング
開発中、データベースは前後に交換され、一部のこの記事では、SQL Server、Oracle、MySQL の 3 つのデータベースでの複数のテーブルの更新時の Update ステートメントの使用法についてまとめています。SQLite データベースも試しましたが、失敗しました。マルチテーブルの更新などをサポートしていないのかどうかはわかりません。
この例では: landleveldata の同じフィールド名のデータを更新するには、テーブル gdqlpj の gqdltks フィールド データと bztks フィールド データを使用する必要があります。条件は、landleveldata の GEO_Code フィールドの値が gdqlpj の lxqdm フィールドの値と等しい場合です。 UPDATE { table_name WITH ( < table_hint_limited > [ ...n ] ) | SET { 列名 = { 式 | @変数 = 式 } [ ,...n ] { [ FROM { } [ ,...n ] ] WHERE < 検索条件 > ] } | [ WHERE CURRENT OF { [ GLOBAL ] カーソル変数名 } ] } [ OPTION ( < クエリヒント > [ ,...n ] ) ]
SQL サーバーの例: set a.gqdltks=b.gqdltks, a.bztks=b.bztks from landleveldata a,gdqlpj b where a.GEO_Code=b.lxqdm
Oracle 構文: UPDATE updatedtable SET (col_name1[,col_name2...])= ( SELECT 列名 1,[,列名 2... ] FROM srctable [WHERE where_定義])
Oracel 例: update landleveldata a set (a.gqdltks, a.bztks)= (select b.gqdltks, b.bztks from gdqlpj b where a .GEO_Code=b.lxqdm)
MySQL 構文: UPDATE table_references SETcol_name1=expr1 [,col_name2=expr2 ...] [WHERE where_定義]
MySQL 例: update landleveldata a, gdqlpj b set a.gqdltks= b.gqdltks 、a.bztks= b.bztks ここで、a.GEO_Code=b.lxqdm
http://www.bkjia.com/PHPjc/872373.html