- 締切済み
MySQLで更新の結果を知るには
こんばんは 業務で以下の切り分けをしたいのですが、可能でしょうか。 SOAP通信を使っていて、パフォーマンス的な観点から、select文は使用したくないと思っています。 ■環境 ・PHP5 ・MySQL ・FreeBSD6 ■やりたいこと Update文で更新を行ったときに、データそのものがなくて更新できなかったのか、データは存在するがPK以外の条件がマッチしなくて更新できなかったのかで、エラーコードを分けたい 例えば、 update tableA set column1='aaa' where pk1=1 and pk2=2 and column2='bbb'; といったSQL文で、「pk1=1 and pk2=2」に合致するデータがないのか、データは存在するが「column2='bbb'」には合致しなくて更新されないのかの切り分けをしたいのです。 かなり、困ってしまっています。 SQL文でできない場合でも、何かしらの解決方法がありましたら、よろしくお願いいたします!!!
- kokubunta
- お礼率84% (11/13)
- Java
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- newta777
- ベストアンサー率58% (20/34)
select count ... のselect文で調べるといいのでは?
関連するQ&A
- WHERE句の条件を区別する
こんばんは 業務で以下の切り分けをしたいのですが、可能でしょうか。 SOAP通信を使っていて、パフォーマンス的な観点から、select文は使用したくないと思っています。 ■環境 ・PHP5 ・MySQL ・FreeBSD6 ■やりたいこと Update文で更新を行ったときに、データそのものがなくて更新できなかったのか、データは存在するがPK以外の条件がマッチしなくて更新できなかったのかで、エラーコードを分けたい 例えば、 update tableA set column1='aaa' where pk1=1 and pk2=2 and column2='bbb'; といったSQL文で、「pk1=1 and pk2=2」に合致するデータがないのか、データは存在するが「column2='bbb'」には合致しなくて更新されないのかの切り分けをしたいのです。 かなり、困ってしまっています。 SQL文でできない場合でも、何かしらの解決方法がありましたら、よろしくお願いいたします!!!
- 締切済み
- MySQL
- update実行時の、追加情報の取得について
こんばんは。 業務で、以下の情報を知りたいと思います。 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 以上、よろしくお願いいたします。
- ベストアンサー
- MySQL
- mysql 空いているカラム
恐れ入ります。mysqlで右端のカラムにデータを次々とupdateしたいのですが sql文はどのようにすれば良いでしょうか。 右端のデータの無いカラムのを探してupdateするイメージです。 よろしくお願いします。
- 締切済み
- MySQL
- Selectした時のレコードの取得順
SQL Server2005 で開発しています。 Order by で並び替えてレコードをSelectする際に、 Order by の対象列データが同じ場合は、 どういった順番でレコードが取得できるのでしょうか? TableA No | Data1 | Data2 1| AAA | 100 2| AAA | 200 3| AAA | 300 4| ABC | 400 5| BBB | 500 (Noはクラスタ化PK) 例えば、上のようなテーブルから次のSQLを実行すると (1)Select * From TableA ; (2)Select * From TableA Order by Data1 Asc; (3)Select * From TableA Order by Data1 Asc, No Asc; (1)(2)(3)全て、次の順で返ってきました。 1| AAA | 100 2| AAA | 200 3| AAA | 300 4| ABC | 400 5| BBB | 500 しかし、(2)のSQLは、データによって 次の順で返ってくることがありました。 3| AAA | 300 1| AAA | 100 2| AAA | 200 4| ABC | 400 5| BBB | 500 1~3レコード目までは全てData1がAAAのレコードですが 特に指定していなくても、No(PK)の順になるのかと思っていました。 なお、レコードができた(Insert順)でもなさそうです。 この、順番は何で決まっているのでしょうか?
- ベストアンサー
- SQL Server
- updateで複数行更新したい
OracleのSQLについて質問があります。 UPDATE文を1度しか使わずに、抽出条件の異なるデータを複数個更新することは可能ですが? 例えば、 テーブル名:TEST カラム: A B C D UPDATE A B C D 100 010 350 300 → 100 010 200 250 100 020 350 000 → 100 020 200 280 という感じで更新したいのですが、どんなUPDATE文を組み立てればいいのか思いつきません。 なので、何かきっかけになるようなことでも構いませんので、教えてください。 よろしくお願いします。
- ベストアンサー
- Oracle
- データの更新方法について
データを更新するときSQLで DeleteしてInsertする更新方法と Updateを行う更新方法とがあると思うのですが この使い分け、切り分けはどういう視点になるのでしょうか 私はDeleteしてInsertする方が簡単なので Delete + Insertをよく使っています。
- 締切済み
- SE・インフラ・Webエンジニア
- csvファイルを使ってMySQLのテーブルを更新し
約2万件ある15個のカラムで構成されるMySQLのテーブルがあります。 このテーブルをcsvファイルを使って更新しようと考えています。 csvファイルにはレコードIDとあるカラムの変更する値の2つのセルで 構成されています。 行数は毎回異なりますが、だいたい300行前後です。 csvファイルの具体的イメージはこんな感じです。 id order ============ 2, 200 4, 10 7, 460 11, 35 MySQLのテーブルの方にも「id」と「order」というカラムが存在します。 java や PHP を使ってやる方法はわかるんですが、プログラムを作成しないで SQLだけで行いたいと考えています。 LOAD DATA LOCAL INFILE などがあることがわかったのですが、レコードを REPLACE するのではなく、一部のカラムをアップデートしたい、ということです。 どなたか、教えて頂けると助かります。 よろしくお願い致します。
- 締切済み
- MySQL
- MySQL側で計算してもらってレコードを更新できるか??
質問があるのですがよろしくお願いします。 例えば、「point」というカラムのレコードの数値を+1して更新したい時に、 update文の中に「id~番のレコードの、「point」のカラムの数値を+1する」みたいな命令を書いて、 MySQL側で計算してもらってレコードを更新することは出来るのでしょうか? それとも、やはり一度select文で数値を取り出して、 perlやPHP等のミドルウェア側で数値を+1してからupdate文で更新するしかないのでしょうか? どなたか分かる方いらっしゃいましたらよろしくお願いします。
- ベストアンサー
- MySQL
- あいまい条件抽出についてのSQL文について
あいまい条件抽出についてのSQL文について hiroです。 SQL文について、教えてほしいのですが、 下記のようなDatabaseがあったとします。 tableA:カラムA:ABCDE,BCDEA tableB:カラムB:??C?? この場合、例えば、 SELECT * FROM DataBase WHERE tableA.カラムA like tableB.カラムB みたいな感じで、カラムAのABCDEだけを検索するような仕組みを作ることは 可能でしょうか? ※上のSQL文では引っ張れないのは理解できています。 わかる方がいらっしゃいましたら、SQL文を教えてください。 よろしくお願いします。 環境:Oracle 11g
- ベストアンサー
- Oracle
- PL/SQL 複数件同じ値で更新する方法
functionを作成しています。 AAA BBB BBB ==== ==== → ==== 001 100 200 001 101 200 002 102 201 003 103 202 update TABLE_NAME set BBB = function (BBB); のように呼び出されています。 現在はfunctionで連番がふられているため、BBBのカラムは 全て違う値に更新されてしまうのですが、 AAAで同じ値のものには同じ値を返しBBBのカラムを更新したいのですが どのように作成したらいいのか教えてください。お願いします。
- 締切済み
- Oracle
お礼
参考になりました ありがとうございました