特定カラムの値を変更する方法を教えてください

このQ&Aのポイント
  • PostgreSQLのphpPgAdminを使用して特定カラムの値を変更したいです。現在、以下のようなDBがあります。
  • kaiin_noが'1001', '1002', '1003'であるレコードのt_chiketの値を「なし」から「あり」に変更するSQLの方法を教えてください。
  • お手数をおかけしますが、よろしくお願いいたします。
回答を見る
  • ベストアンサー

特定カラムの値を変更したいのですが

お世話になります。DB初心者です。 現在 、PostgreSQLのphpPgAdminを使っていまして 以下のようなDBがあり kaiin_no  t_name   t_chiket -------+-------+---------- 1001    太郎     なし 1002    次郎     なし 1003    三郎     なし 1004    四朗     あり 1005    五朗     あり 以下のようなSQLで目的のデータを表示できるのは解ったのですが SELECT "kaiin_no","t_name","t_chiket" FROM "public"."store_table" WHERE "kaiin_no" IN ('1001','1002','1003'); kaiin_no '1001','1002','1003' の t_chiket を 「なし」 から 「あり」 に変更すする方法をご教授いただけますでしょうか? お手数をおかけしますがよろしくお願いいたします。

  • ya-ya-
  • お礼率42% (110/256)

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

  • ベストアンサー
  • mikkarin
  • ベストアンサー率50% (55/110)
回答No.1

http://www.itmedia.co.jp/enterprise/0307/18/epn20_10.html 上記に更新SQLのサンプルが掲載されています。 答えを直接誰かに教えてもらうより、サンプルを見て自分でSQLを組み立てられるようにした方が力がつきますよ。

ya-ya-
質問者

お礼

大変参考になりました! ご指導ありがとうございました。

関連するQ&A

  • PostgreSQLのphpPgAdminを使って

    お世話になります。 PostgreSQL8.4.8のphpPgAdmin3.5.3を使ってデータを削除する際に 先ずデータをSELECT で表示させて確認後、 SQL編集 で SELECTを DELETE に書き換えて実行しましたが以下エラーが出ます ≪一覧確認用≫一覧表示はできました。 SELECT "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234',2222'); ≪削除用≫SELECT  → DELETEに変更 → 実行 → 以下エラー DELETE "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234',2222'); ≪エラー内容≫ ERROR: syntax error at or near "," LINE 1: SELECT COUNT(*) AS total FROM (DELETE "kaiin_no","tenpo_no",... ^ 文: SELECT COUNT(*) AS total FROM (DELETE "kaiin_no","tenpo_no","tenpo_name" FROM "public"."store_table" WHERE "kaiin_no" IN ('1234','2222')) AS sub 文法エラーのようなのですが 一覧が出来ているのに なぜ削除が出来ないのか 初心者で恐縮ですが ご教示頂ければ幸いです。

  • phpPgAdminを使ってデータの更新

    PostgreSQLのphpPgAdminを使ってデータの更新をしようと思うのですが 特定の kaiin_no を選んで その t_tiket の値を '取扱っている' に更新したいのですが 文法エラーが出ます。 文: update "store_table" set "t_tiket" = '取扱っている' where "kaiin_no" = ('100','101','103'); SQL エラー: ERROR: operator does not exist: character = record LINE 1: ...t_tiket" = '取扱っている' where "kaiin_no" = ('100... ^ HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. phpPgAdmin では、= や ( ) 、" の使い方に特徴があるようなのです。 WHERE kaiin_no IN ('100','101','103'); とすべきなのでしょうか? ご存知の方がいらっしゃればご教示くださいませ。

  • 【Excel VBA】コピー&ペーストの自動化

    以下のエクセル表があり、同じ日付ごとのデータを自動的に別のシートに移したいです。 例えば、別のシートに、2004/1/1に書かれているデータのみを移す。(シート2参照) それをVBAで書くにはどうすればいいでしょうか。 マクロの記録をするのではなく、この表の日付を増やしたり変えたりしても機能するようにコードを書きたいと思っております。 For LoopとIf thenを使い、A1セルがそれより下のセルの値と異なるまでコピーし続ける、、といった作業をすればよいのでしょうか。 全くの初心者で勉強中です。よろしくお願いいたします。 列行 A B 1 2004/1/1 太郎 2 2004/1/1 次郎 3 2004/1/1 三郎 4 2004/1/1 一郎 5 2004/1/1 五郎 6 2005/3/3 三郎 7 2005/3/3 次郎 8 2005/3/3 太郎 9 2005/3/3 四朗 10 2006/2/2 次郎 11 2006/2/2 一郎 12 2006/2/2 太郎 シート2 2004/1/1 太郎 次郎 三郎 一郎 五郎 シート3 2005/3/3 三郎 次郎 太郎 四朗 シート4 2006/2/2 次郎 一郎 太郎

  • 次の条件を満たすSQL文をご教示下さい。

    テーブル名: list no | first_name | last_name | comment ----+------------+-----------+--------- 1 | 太郎 | 山田 | ほげ 2 | 次郎 | 田中 | ふが 3 | 花子 | 山田 | ぴよ 4 | 三郎 | 佐藤 | ぴよ 5 | 太郎 | 山田 | ぴよ 6 | 次郎 | 田中 | ふー 7 | 三郎 | 佐藤 | ふー 8 | 花子 | 山田 | ふー 上記の表から同じ”last_name”を持つ人の”first_name”と”last_name”を重複無しで抽出する(下記のような結果)SQL文は作成可能でしょうか。 結果 first_name | last_name ------------+----------- 太郎 | 山田 花子 | 山田 宜しくお願いします。

  • Excelセルで縮小表示

    例えばセルに以下を入力しますと 山田太郎(改行) 山田次郎(改行) 山田三郎 縮小表示だと 山田太郎山田次郎山田三郎 になります。 折り返して全体表示だと 山田太郎 山田次郎 となり、山田三郎隠れて見えないのです。これを全体的に縮小表示はできませんか。お願いします。

  • INSERT時に発番を行いたい

    ATBLからBTBLへのINSERT時発番を行いたい <環境> SQLSERVER 2008 <ATBL> CD varchar(3) KEY NO int KEY NAME varchar(10) <BTBL> CD varchar(3) KEY NO int KEY NAME varchar(10) <BTBLのデータ> CD   NO   NAME 001 1 太郎 001 3 次郎 001 5 三郎 BTBLをATBLへINSERTしたいのですが、この時、NOを1から再付番したいのです。 INSERTクエリで一発で更新できますでしょうか? ご教授お願いします。

  • SQLiteのLike句で抽出できない

    SQLiteのLike句で抽出できないレコードがあります。 原因についてご教授いただけますでしょうか。 以下、操作手順になります。 ■データベースの作成 C:\>sqlite3.exe member.db SQLite version 3.7.15.2 2013-01-09 11:53:05 Enter ".help" for instructions Enter SQL statements terminated with a ";" ■テーブルの作成、レコードの追加 sqlite> create table t_member(name text, age integer); sqlite> insert into t_member values('山田一郎', 25); sqlite> insert into t_member values('田中次郎', 35); sqlite> insert into t_member values('鈴木三郎', 45); ■検索 sqlite> select * from t_member where name like '%一郎'; 山田一郎|25 sqlite> select * from t_member where name like '%次郎'; 田中次郎|35 sqlite> select * from t_member where name like '%三郎'; sqlite> 三郎だけが検索条件に適合しないのは何故でしょうか。 よろしくお願いします。

  • format について

    formatで出力した先で一行ずつ改行が入るのですが、入らない方法って ありますか? format TEST = @<<<<<<<<<<<<<<<<<<@<<<<<<<<<<<<<<<<< $name,$login . ------------↓出力時 太郎   0123 次郎   0303 三郎   1111

  • Excelで該当する名前を挙げるには?

    vlookupは使えるのですが以下のような方法は作りこまないと出来ないでしょうか? 手動でソートして、そのデータから何かを作るような数ステップは手動でも構いません。 出来るだけ簡単な方法がありましたら教えてください。 マクロとかデータベースとか別のソフトとか使うと簡単なのかもしれませんが Excelの基本的な関数で作りたいです。 データ1 A組:1番:太郎 A組:2番:次郎 A組:3番:三郎 B組:以下略 ・・・ 質問:データ1からA組に該当する名前を羅列せよ。 答え: A組:「太郎、次郎、三郎」 「太郎、次郎、三郎」の文字列を取得したいです。

  • 次のデータ抽出を(高速に)行うSQLを教えてくださ

    自分がフォローしている人のつぶやきと、じぶんの呟きを含めて、日付順で表示するSQLを検討しています。 MYSQLの構文がかなり複雑になってしまったために、 もっと簡単に高速にSQLで記述する方法がありましたら教えて頂けませんでしょうか。 長文になり申し訳ございませんが、アドバイスいただけると幸いです。 テーブルは以下の3種類です。 ●cutomer:登録者名を記録 <構造> id(auto increment,key),name(名前) <サンプルデータ> 0,"太郎" 1,"次郎" 2,"三郎" 3,"四郎" ●follow:誰が(my_user_id)、誰をフォローしているか(target_user_id)を記録 <構造> id(auto increment,key),my_user_id,target_user_id <サンプルデータ> 0,1,0 0,1,2 ●tweet:つぶやきを記録 <構造> id(auto increment,key),user_id,tweet_comment(つぶやき),date(つぶやき日時) <サンプルデータ> 0,1,"次郎のつぶやきです","2011-01-01 00:00:00" 1,2,"三郎のつぶやきです","2011-02-01 00:00:00" 2,0,"太郎のつぶやきです","2011-03-01 00:00:00" 3,1,"次郎のつぶやきです","2011-04-01 00:00:00" 4,3,"四郎のつぶやきです","2011-05-01 00:00:00" 上記のサンプルデータを用いて、期待する出力結果をご説明します。 例として、入力値を「次郎」とすると、 「次郎」のつぶやきと、次郎がフォローしている太郎と三郎の呟きを表示したいです。 "次郎","次郎のつぶやきです","2011-01-01 00:00:00" "三郎","三郎のつぶやきです","2011-02-01 00:00:00" "太郎","太郎のつぶやきです","2011-03-01 00:00:00" "次郎","次郎のつぶやきです","2011-04-01 00:00:00" 現状は、次郎とつぶやきselectと、次郎がフォローする太郎と三郎のつぶやきselectを unionで結合する形式なっており、もうちょっと賢くできないものかと悩んでいます。 なお、対象の次郎のuser_id(サンプルでは"1")は予めわかっているものとします。 ( select customer.name,tweet.tweet_comment,tweet.date from customer,tweet where customer.id = 1 and customer.id = tweet.user_id ) union ( select customer.name,tweet.tweet_comment,tweet.date from customer,tweet,follow where follow.my_user_id = 1 and follow.target_user_id = tweet.user_id and tweet.user_id = customer.id ) order by table_tweet.date asc

    • ベストアンサー
    • MySQL