moousiのプロフィール

@moousi moousi
ありがとう数29
質問数0
回答数42
ベストアンサー数
21
ベストアンサー率
70%
お礼率
0%

  • 登録日2010/08/19
  • 1テーブル内レコードの各フィールド値の差分チェック

    お世話になります。 現在、1テーブル内をログテーブル用として利用しています。 JSPでフォームを作成して各フィールド値を、 Webサイト画面上から変更可能なつくりにしており、 複数あるいずれかのフィールドの値を1つ以上変更してから、 [保存]ボタンを押下した際に、   ↓ その変更前のレコード1件と、 変更後のレコード1件を、 同じログ用テーブル内へフラグ(変更前:0、変更後:2)を それぞれ変えて、 INSERT INTOでレコードを計2件追加しています。 (あわせて、追加時のタイムスタンプをセットするフィールドもあるので、  どんどんレコードを追加可能な仕様です) そこでご質問なのですが、 この2つのレコードのみを比較して、 値が異なるフィールド名のみを、 (ときには複数フィールドにおいて値が異なるケースも有ります) SELECTなどで表示させるようなSQL文の 作り方をご存じの方がいらっしゃいましたら、 ぜひ教えてください。 なぜこのようなご質問をさせていただいたかと申しますと、 ログテーブル内の上記した2件のレコードを比較して、 どこのフィールドの値が変更されたか? を確認する際に利用したい為です。 (確認時には、phpMyAdminツールなどで直接SQL文をたたいて実行予定です) 以上、宜しくお願い致します。

  • MySQLでのフィールドの結合

    こんにちはurudakaraといいます。よろしくお願いします。 私はSQLに関する知識がほとんどありませんがよろしくお願いします。 私はopenofficeをubuntu10.04上で使っています。 業務上データが大量になったためopenofficeについているHSQLというデータベースエンジンでは動作が遅くなったので、データベースエンジンをMySQLに変えました。 するとHSQLでは問題なく結果が出ていたクエリが違う数値を出すようになりました。 まずopenofficeのbaseのテーブルで 識別番号(MySQL Administrator で見るとData Type は VACHAR(50)となってます。) 区分(MySQL Administrator で見るとData Type は DECIMAL(50,0)となってます。) というフィールドがあります。 この状態でopenofficeのクエリのデザイン画面でフィールド欄に "識別番号"+"区分" としてました。 "識別番号1234"+"区分5"の場合  HSQLの場合は結果が 12345 MySQLの場合は結果が 1239 となります。 MySQLでもHSQLの時と同じように結果を出すようにするにはどうSQL文を書けば良いでしょうか? 初心者で分からない事ばかりですが、よろしくお願いします。

    • ベストアンサー
    • mash001
    • MySQL
    • 回答数1
  • SQL:1回で期待するデータの出力をしたい

    SQLの得意な皆様、教えてください! 以下のようなデータがあったときに、mysqlで1回で期待するデータを出力することは可能なのでしょうか。 出力したいデータは、name毎に最もdateが最近のデータを抽出したいです。 groupby句やDISTINCTを試して、nameでまとめる作業はできたのですが、各nameの最も最近のデータを抽出する作業がうまくいきません。 ■入力データ(input_date) id,name,date 1,userA,10/29 2,userB,10/27 3,userA,10/25 4,userB,10/28 5,userC,10/2 ■出力したいデータ id,name,date 1,userA,10/29 4,userB,10/28 5,userC,10/2

    • ベストアンサー
    • mmei
    • MySQL
    • 回答数8
  • 特定のレコードの抽出方法について

    AのSQLでヒットし、BのSQLでヒットしないレコードを抽出したいと思います。 イメージとしては、内線(tel)30..のみを使用している社員(employee)を抽出したいと思います。 【AのSQL(内線(tel)30..を使用している社員(employee))】 SELECT `employee` FROM `w_table` WHERE `tel` REGEXP '30..' 【AのSQLの結果】 employee 10001 10001 10002 10002 【BのSQL(内線(tel)30..以外を使用している社員(employee))】 ※※※1.ここの書き方が分かりません。※※※ 【BのSQLの結果】 employee 10001 10003 【CのSQL(AのSQLを満たし、BのSQLを満たさない社員)】 ※※※2.ここの書き方が分かりません。※※※ 【CのSQLの結果】 employee 10002 上記の場合、 社員番号10001は内線30..と内線30..以外を使用しています。 社員番号10002は内線30..のみを使用しています。 社員番号10003は内線30..以外を使用しています。 この場合、社員番号10002のみを抽出したいと思います。 その為、【CのSQL】を記述しようと思ったのですが、 どのように SQL 文を記述すればよいか分からなかったので、 記述方法についてアドバイスいただける方がいらっしゃいましたら、 ご教示の程、よろしくお願いします。 なお、【AのSQL】【BのSQL】を書かず、 直接【CのSQL】一回で済む物であれば非常に助かります。 以上、よろしくお願いします。

  • 行と列の入れ替え検索(行は可変で項目を固定にしたい)のSQL文が出来な

    行と列の入れ替え検索(行は可変で項目を固定にしたい)のSQL文が出来ない 以下のテーブルがあります。 <テーブルA> UID  name --------------- 1   伊藤 2   鈴木 3   高橋 4   佐藤 <テーブルB> no UID key   value ------------------- 1  1  telno  001-01-0001 2  1  faxno  001-01-0002 3  1  nickname itochan 4  2  telno  111-11-1111 5  2  faxno  111-11-1112 6  3  nickname hashi この2つのテーブルがあります。 ・テーブルAにあるUIDはテーブルBにない場合もあります。 この場合、以下のように出力して、csvファイルにしたいのですが、可能でしょうか? 申し訳ありませんが、よろしくアドバイスお願いいたします。 UID  name  telno    faxno     nickname ------------------------------------------------- 1   伊藤  001-01-0001 001-01-0002  itochan 2   鈴木  111-11-1111 111-11-1112 3   高橋                  hashi 4   佐藤 (経緯:wordpressのユーザの一覧(users,usetmetaテーブル)をユーザ一覧としてCSV形式にして保管したいのです。抽出&登録できるプラグインがなかったので)

    • ベストアンサー
    • Troy1970
    • MySQL
    • 回答数4