MySQL+PHPの初心者です。
特定レコードの変更または新規作成のサンプルなどあればお教えいただけるでしょうか。
例えば特定商品の単価のレコードがあれば新しい単価に変更と
そのレコードが無ければ新規にレコードを作成するようなケースになります。
VBAなどでは検索のSQL文からレコードセットを作成し
レコードが無い場合は レコードセット名.addnewで必要なフィールドに
値をセットし レコードセット名.update
該当するレコードがあった場合は レコードセット名.edit で必要なフィールドに
値をセットし レコードセット名.updateなど簡単な処理なのですが
MySQL+PHP の場合データの検索と新規レコードの単純な記述は
ある程度はわかるのですが上記のようなケースは実際どのように
書かれているのかお教え願えると幸いです。
商品単価テーブルには商品コードと単価のフィールドになります。
よろしくお願いいたします。
No.2
- 回答日時:
ご使用のMYSQLのバージョンが分かりませんが、4.1.0以降であれば
INSERT ... ON DUPLICATE KEY UPDATE 構文を使うといいかもしれません。
http://dev.mysql.com/doc/refman/5.1/ja/insert-on …
お教え頂きありがとうございます。
テーブルの仕様により使える便利な構文があるんですね。
参考になります。
ありがとうございました。
No.1ベストアンサー
- 回答日時:
>特定商品の単価のレコードがあれば新しい単価に変更と
>そのレコードが無ければ新規にレコードを作成
考え方は2つ
(1)単価を削除して、追加する
(2)IGNOREを利用して追加して、更新する
INSERTとUPDATEは構文が違うので2つのSQLを発行することになります。
なお、派生でREPLACE構文もありますが、処理的には(1)とおなじ
削除して追加をしているだけです。
アドバイスを頂きありがとうございます。
やはり異なるSQLを発行する必要があるんですね。
MS-Access+VBAのようにレコードセットそのものに
追加やアップデートができると思っておりました。
処理としては
SELECT文で品番単価情報を検索
・レコードがあれば UPDATE文で単価を更新
・レコードがなければ INSERT文で新規レコードの追加
こんな感じでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- PHP クエリObjectをforeachで回す時に、次のレコードへ移動せずに次のレコードを取得したい 2 2022/07/28 15:29
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- PostgreSQL PostgreSQL レコードからアイテム種類数を取得したい 2 2022/11/23 22:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessにインポートしたら並び...
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
ACCESSにて全項目(レポート)...
-
3つ以上のテーブルをUNIONする...
-
ACCESS 『DoCmd.OutputTo』に...
-
ACCESS【更新クエリの中断がで...
-
データの二重表示の原因
-
Access 1レコードずつcsvで出力...
-
XamppのMySQLへとレコードが登...
-
ACCESSのBookmarkプロパティの...
-
SELECT COUNT(*) について ( PHP )
-
SQLServerで同一条件レコードの...
-
(ACCESS)並び替えをしないで...
-
排他モードで開く場合は、どう...
-
アクセス重複データ
-
Access2007 削除クエリで複数テ...
-
カラム数が多いテーブルの速度
-
ManagementStudioからのデータ削除
-
エクセル
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3つ以上のテーブルをUNIONする...
-
2つの項目が重複するレコード...
-
数百万件レコードのdelete
-
Accessにインポートしたら並び...
-
データの二重表示の原因
-
Access VBA Me.Requery レコー...
-
ACCESSのBookmarkプロパティの...
-
Access 1レコードずつcsvで出力...
-
Access 削除クエリが重い
-
ManagementStudioからのデータ削除
-
SQLServerで同一条件レコードの...
-
非連結サブフォームのレコード...
-
Accessでレコードが更新された...
-
Accessでの排他制御
-
(ACCESS)並び替えをしないで...
-
Accessで重複したデータを一件...
-
Accessでの禁止文字チェック
-
Access カレントレコードがあり...
-
ACCESSファイルを開こうとする...
-
ACCESS【更新クエリの中断がで...
おすすめ情報