こんばんは。
業務で、以下の情報を知りたいと思います。
5000件のupdate文をマルチクエリ実行した際に、
1.すべての条件が合致して、更新された(成功)
2.PKは合致するが、他の条件は合致しなかった(エラーとしてエラーコードとリクエスト情報を返します)
3.PKが合致するデータ自体が存在しなかった(対象のリクエストデータのみ、インサートの処理が実行されます)
以上を実現するために、以下のようなSQL文を作成して実行しようとしています
update tableA set column1=('aaa','bbb',column1) where pk='xx';
1.pk='xx'かつcolumn1='aaa'が満たされた場合、affected_rowsは1になります。
3.データ自体が存在しないので、affected_rowsは0です
2.については、matchedは1だが、changedは0という結果から判別したいのですが、関数としては、mysqli_infoを使用するしかないでしょうか。文字列が返却されてくるので、必要な情報(matchedとchangedのカウント)のみを取得できる方法を探しています
環境は、以下です
PHP5
MySQL(MySQLi接続)
FreeBSD
以上、よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
私の解釈が違うかもしれませんが、
3. SELECT COUNT(*) FROM tableA WHERE pk='xx'; で得られた結果が0なら一致するデータなし。※1
1. UPDATE tableA SET column1='bbb' WHERE pk='xx' AND column1='aaa'; で affected_rows で更新された行数が取得する。※2
2. ※1の結果から※2の結果の差で取得
multi_query("SELECT COUNT(*) FROM tableA WHERE pk='xx'; UPDATE tableA SET column1='bbb' WHERE pk='xx' AND column1='aaa';");
で得られないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- コンサルティング・アドバイザー UL など海外規格をまとめる方法について 3 2023/08/16 10:29
- その他(法律) 携帯電話会社に保管されている解約済み個人情報を消去したい 3 2022/08/13 23:23
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルについて教えてください。 3 2023/06/28 09:11
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL文 複数実行
-
SQLローダーCSV取込で、囲み文...
-
count関数の値をwhere句で使用...
-
select文の実行結果に空白行を...
-
<SQL>重複しているデータの場合...
-
ファイルの漢数字の順番につい...
-
Oracleで「文字が無効です」の...
-
SQLで、同じ値が何回連続す...
-
int型フィールドにnullを登録で...
-
配列に指定した値が含まれてい...
-
引数によってwhere句を切り替え...
-
oracle DB内のデータを増幅す...
-
【PL/SQL】FROM区に変数を使う方法
-
「数字で始まらない」ものを抽...
-
MySQLで特定のグループの上位3...
-
PHP+MySQLで月ごとの数量を表...
-
Excelのオートフィルタでソート...
-
【SQL】違うフィールド同士の集...
-
デフォルトでデータが表示され...
-
Selectした時のレコードの取得順
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL文 複数実行
-
SQLインジェクションが発生する...
-
ntext更新時にエラーが出ます
-
update実行時の、追加情報の取...
-
MysqlのSQL文について
-
LIKE文でエスケープ文字自体を...
-
access2007で、フィルタ検索で...
-
SQLローダーCSV取込で、囲み文...
-
select文の実行結果に空白行を...
-
テーブルの最後(最新)のレコー...
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
SQL*Loader Append
-
count関数の値をwhere句で使用...
-
Oracleで「文字が無効です」の...
-
where句中のtrim関数について
-
AccessのSQL文で1件のみヒット...
-
group byの並び順を変えるだけ...
-
2つの列が同じ値の行を取得するSQL
-
文字2桁、3桁交じりの文字列...
おすすめ情報