• ベストアンサー

int型のマスに数値が足される

指定したマスの数値を足したり引いたりしたいです。 マスに5の数を持っているとき、3を足したい場合5+3してからUPDATEするのではなく、 update table set number=関数名(id、値);のような感じに UPDATEと同時にマスの5の値に+3という処理をしたいのですが、 そのような関数や、処理の仕方はありますでしょうか。 もし分かる方がいましたら教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • root139
  • ベストアンサー率60% (488/809)
回答No.1

SET句にそのまま書けば良いかと。 例) ----------------------------------------------------------------- UPDATE table1 SET number = number + 3; ---------------------------------------------------------------------

qqtaka
質問者

お礼

全然気づきませんでした。 簡単に出来るんですね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL 空欄のマスの数

    EXCELで指定したマスに対して空欄(null)のマスの数を返す関数は ないでしょうか? たとえば A1:C3の範囲でnullマスが9個なら9と返す関数です… 回答よろしくお願いします。

  • MySQLで1つのレコードだけに処理をする方法

    MySQL初心者です。よろしくお願いします。 以下のようなテーブルがあったとして、UPDATEでレコード1つだけnumberから特定の数をマイナスしたいのですが、どうもやり方がわかりません。 id | name | number 1 aaa 100 2 bbb 200 3 ccc 300 3 ccc 300 2 bbb 200 例えば、id=2のレコードの中から1つだけ、numberからマイナスするといった処理を行いたい場合、以下のSQL文だとidが2のものすべてから数がマイナスされてしまいます。 UPDATE table SET number = number-50 WHERE id=2; すべてのレコードからマイナスするのではなく、id=2のレコードの中から1つだけマイナスしたいんです。。。 これをid=2の中で1つ目のレコードからだけマイナスする、といったようにうまく1つのレコードからマイナスする方法をご教示いただけるとありがたいです。 つたない文章で恐縮ですが、どうぞよろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • UPDATE文の更新順序について

    環境はPostgreSQL 9.0です。 id(char(1))   number(integer) 1          1 2          2 3          3 っていうテーブルがあって、numberにUNIQUE制約が掛かっています。 一回のupdate文でnumを1ずつ増やしたいんですが、更新順序の指定 ってどうやるんですか? UPDATE table SET number = number+1 だと重複違反になるから、numberが大きい奴から更新したいんですよね。 誰か教えてくれませんか?

  • 数値をNUMBER型にするかCHAR型にするか。

    テーブルのカラムで、2005という文字を格納したい場合、 属性として、NUMBER型、CHAR型の選択ができると思います。 ●テーブル名 TABLE1 カラム名 A B 属性 ??? char データ 2005 XXXX ●テーブル名 TABLE2 カラム名 A C 属性 ??? char データ 2005 XXXX このカラムAが、TABLE2のAの2005という値と結合させる (結合させるためのキーとなっている場合) ということがある場合、NUMBER型での定義とchar型での定義に 速度的な観点やその他の観点で、なにか差異みたいなものはありますでしょうか? 下記のように、値を指定するところでは、シングルコーテーションが必要か不必要かというのは、あるかと思いますが、 結合自体で、差異はありますでしょうか? ■CHAR型にした場合。 select * form TABLE1,TABLE2 where A='2005' and TABLE1.A=TABLE2.A ■NUMBER型 select * form TABLE1,TABLE2 where A=2005 and TABLE1.A=TABLE2.A

  • 1テーブル&複数レコードの更新に対して1度のupdate文での処理方法

    1テーブル&複数レコードの更新に対して1度のupdate文での処理方法 Delphi2010+SQL SERVER 2005で開発しています。 update文で、 現在下のようにwhileで複数レコードに対して、 1回、1回、sqlを発行して、更新しています。 これを、一度のSQLの発行で処理できないものでしょうか? 更新テーブルは1つで、更新する項目も同じです。 更新するデータと、where句の条件が異なります。 もし可能なようでしたら、どうかご教授お願いします。 update table set A=1,B=2 where id=1 update table set A=2,B=3 where id=5 update table set A=9,B=99 where id=7 update table set A=5,B=10 where id=15 update table set A=1,B=10 where id=75

  • 空文字

    プログラム初心者です 空文字をdbに入れた場合、dbのカラムの値はなしになるのでしょうか? それとも、見えないけどなにか入ってしまうのでしょうか? nameが空文字の場合 $name = $_POST['neme']; UPDATE table SET name=$name WHERE id=1 空文字はNULLを指定した場合と同じ結果になりますか? UPDATE table SET name=NULL WHERE id=1 よろしくお願いします

    • ベストアンサー
    • PHP
  • 複数テーブルからデータを取り、updateする

    http://oshiete1.goo.ne.jp/kotaeru.php3?q=1211685 にも同じような質問があったのですが、同様の処理でうまくupdateされません。分かる方がいらっしゃいましたら教えてください。 今、テーブルが2つ(table1、table2)があり、それぞれ2つのカラム(column1、column2)を持っています。ここで、それぞれのカラム2が等しく、カラム1が指定した値のレコードのみ値をupdateしたいです。 update table1 set column1 = 'AAA' from table1,table2 where table1.column2 = table2.column2 and table1.column1 = 'BBB' and table2.column1 = 'CCC' としたところ、「from table1,table2 where 」の辺りに間違いがあると表示されます。 上の例とどう違うのか分かりません。 よろしくお願いします。m(__)m

  • アクセス テーブルデータ他のテーブルにコピーVBA

    win10 access365のmdbファイルにおいて table1のフィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  table2;フィールド1がID 数値型 長整数型 値要求あり 重複あり フィールド2が氏名 短いテキスト型 225 値要求なし 重複あり  上記に置いて table2の新しいデータとして table1のデータをコピーしたい、 ただしtable1には レコードは1行だけとします (table1にレコードが複数行ある場合の最新レコードだけtable2にコピーも出来れば知りたいです) アクセス付属の更新クエリーでは、どうも うまくいきません sqlにおいて UPDATE table1, table2 SET table2.ID = [table1]![ID], table2.氏名 = [table1]![氏名]; 上記動作しません Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim TB As Table Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Table![table1]![ID] Rdset![氏名] = Table![table1]![氏名] Rdset.Update End Function table1, table2を それぞれ 同名のフォームを作り Function table1から2() Dim db As DAO.Database Dim rst As Recordset Dim fm As Form Dim Rdset As Recordset On Error Resume Next Set db = DBEngine(0)(0) Set fm = Forms![table1] If Rdset.BOF Then Exit Function Else Set Rdset = db.OpenRecordset("table2", DB_OPEN_TABLE) Rdset.AddNew Rdset![ID] = Forms![table1]![ID] Rdset![氏名] = Forms![table1]![氏名] Rdset.Update End If End Function いずれも table2のデータ更新が なされていません すみません 宜しくお願い致します

  • エクセル関数の範囲指定を、座標数値で指定したい

    address関数とindirect関数で、行・列を数値で指定して、セルの値が求められますが、同じように行・列の数値を4つ使って範囲の指定をしたいのですが、どのような関数を使えばよいでしょうか? 具体的には、=MATCH(A1,範囲,1)の範囲を、2組の座標の数値で指定したいのです。

  • ON DUPULICATE UPDATE

    データをINSERTする際にすでにレコードがある場合、mysqlで ON DUPULICATE UPDATEで更新処理が出来ると思うのですが なぜかINSERTされてしまいます…。 ID TABLE_ID COUNT 1 1 1 2 2 2 3 3 3 INSERT INTO TABLE_A SET TABLE_ID = 2, COUNT = 1 ON DUPULICATE UPDATE ID = 1 この構文をした場合に以下のようにしたいのですが 何がいけないのでしょうか…。 お分かりになる方よろしくお願い致します。 ID TABLE_ID COUNT 1 2 1

    • ベストアンサー
    • MySQL