MySQLのテーブル内表示の時、”SELECT * FROM tbname”や"SELECT id,name FROM tbname"というSQL文になると思います。


そこで質問ですが、「特定のフィールドだけ」対象としない場合はどうしたらいいのでしょうか?例えば、フィールド数が30ある場合、そのうち29だけ表示させたいとした時、”SELECT id,name,address・・・”っと書いていくと長くなります。

ですので、もし特定のフィールドだけ対象としないSQL文の書き方がありましたら、アドバイスいただければと思います。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/08/23 15:14:39
  • 終了:2007/08/30 15:15:51

回答(1件)

id:beatgoeson No.1

beatgoeson回答回数128ベストアンサー獲得回数142007/08/23 15:32:21

ポイント60pt

http://dev.mysql.com/doc/refman/5.0/en/create-view.html

直接テーブルをSELECTするときに、特定のフィールドを除く方法は無いと思います。

期待した回答でないかもしれませんが、代替手段としては、viewを使う方法でしょうか。

除くフィールドが決まってるのであれば、

create view v_viewname as

select id,name,address・・・from tbname

として、select * from v_viewname とする。

id:kt26

viewはMySQL5.0しか使えないみたいなので、厳しいですね。。

なんらかの方法で出来そうな気がしたのですが、自分で調べても出てこなかったので、質問しました。もう少し質問を公開します。

2007/08/23 15:47:25
  • id:KUROX
    邪道っぽいけど
    MySQL 5.0 以降?なら、Viewを作っておいて、
    それをSELECTする。
  • id:kt26
    出来れば4.0以降で、SQL文だけで通用する方法をお願いします。もし、無理なら無理だという意見も受け入れます。
  • id:kn1967
    MySQLであれば必要なフィールドを特定するよりも
    *で全フィールドを取得するほうが一般に高速ですし
    (余談ですがPostgreSQLではフィールドを特定する方が高速)
    基本的には何らかのミドルウェアを使っている事でしょうから
    そこでSQLを生成するときに必要なフィールドを列挙するなり
    もしくは結果セットから必要なフィールドだけを利用したりすれば
    良いだけの事だと思いますけど、それすらも面倒と言う事かしら?


    そういった具体的な問題にあたったのではなくて、単なる疑問って事かしら?
    だとすれば
    「在る」と言う事を証明する事は簡単ですが
    「無い」と言う事を証明するのは非常に困難です。
    出来る人がいれば私も回答を読んでみたいですね。
    もしも「無い」ものを具体的に証明できるような回答がついたならば、
    のっかりさせていただきたく思いますが・・・多分・・・
  • id:b-wind
    テーブルの DESCRIPTION から SQL を自動生成する。
    もちろん自動生成するプログラムは必要ですけど。
  • id:kt26
    例えば、「必要でないフィールド」を指定してプログラムで必要なフィールドを列挙するのは簡単だと思います。ただ、今回はめんどくさいというよりも仮に「簡単に出来ればそれにこしたことはない」という意図が含まれています。単に自分が知らないだけかも知れませんし。

    とりあえず、簡単に必要でないフィールドだけを指定する方法は無さそうですね。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません