• ベストアンサー

テーブルの存在確認とソート順

Perl/DBIとSQLiteを勉強しています。 二つお聞きしたい事があります。 一つめ DBに接続してテーブルが既に存在するかどうかを簡単に知る方法はないでしょうか。 DBが初期化されていなければまずテーブルの作成からするようなスクリプトを書こうと思っています。 二つめ プレースホルダを使ってソート順を自由に指定する方法はあるのでしょうか。 ORDER BY ? とやったらエラーが出てしまいました。 御存知の方、宜しくお願いします。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>一つめ SELECT name FROM sqlite_master WHERE type='table'; で、接続しているDBのテーブル名が得られますから、 これで、テーブルがあるかどうか判ると思います。 >二つめ ORDER BY 使えたと思いますけど・

TheBlackArtist
質問者

お礼

いまはそのSQL文でやってましたが、なんか格好悪いので他の方法がないかとおもい質問しました。 ORDER BYはやりなおしてみます。 ありがとうございました。

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

関連するQ&A

  • 都道府県順、北からソートしたいのですが

    テーブルに下記データがあって、 SELECT ken,count(*) c from table group by ken order by c --------- 東京 8 大阪 7 北海度 4 名古屋 3 沖縄 1 これを 北から順にソート --------- 北海度 4 東京 8 名古屋 3 大阪 7 沖縄 1 と、いうふうに都道府県でソートするのにいい方法はありますか? 配列を使ったりしないと駄目でしょうか?

  • DB内データのソート

     SQLServer2000を使って1週間の初心者です。  現在、ExcelからDBに対して数万件単位でデータをインポートしています。(DTSインポートウィザード使用)  インポート後、Enterpriseマネージャにてデータを見ると、ExcelとDBとの行の位置が異なっています。  (例)2万件を2回インポートした場合   ID_000001 ・ ・   ID_020000   ID_020059 ・ ・   ID_040000 ※ID_020001~ID_020058は、ID_020000以前のレコードの間に存在したりします。  一意である「ID_??????」行でSQL文ソート(ORDER BY)して見た目をExcelと同様の行順にしても、EnterPriseManagerでテーブルを閉じ、再度テーブルを開いたら以前のデータのままです。  ソート状態を上書き保存するようなことはできないでしょうか?  また、Excelと同じ行順でインポートする方法はないでしょうか?

  • 別テーブルのカラムを利用してソートしたい

    別テーブルのカラムを利用してソートしたい MySQLバージョン4.1.16を使用しています。 テーブル「tbl1」をテーブル「tbl2」のcountというカラムを利用して ソートしたいのですが、どのようなSQL文になるのでしょうか? 「tbl2」のidというカラムは外部キーで「tbl1」のidと関係しています。 テーブル「tbl1」 +------+---------+ |   id |  userid  | +------+---------+ |  1  | tanaka  | |  2  | sato   | +------+---------+ テーブル「tbl2」 +------+---------+ |   id |  count  | +------+---------+ |  1  |   10  | |  2  |   3   | +------+---------+ 次のような文かなと思ったのですが、エラーが返ってきます・・・ SELECT * FROM tbl1 ORDER BY (SELECT id FROM tbl2 ORDER BY count)

    • ベストアンサー
    • MySQL
  • 文字数順にソートするには

    テキストファイルの行を文字数順にソートしたいのですが、 sort コマンドを使って行うことはできないのでしょうか? $ perl -e 'print for sort { length $a <=> length $b } <>' foo.txt でもいいのですが、行数が膨大なため、できるだけ早く処理したいと思っています。 もし何か方法がありましたら教えてください。お願いします。

  • クライアントの自由にソートする

    お世話になっております。 現在データベースの中に下記のようなデータが存在するとします。 A B C D 1 2 3 4 (Aのカラムに1) (Bのカラムに2) と言う具合にデータが入っています。 そこで質問なのですが、クライアントの自由にABCDのカラム内のデータをソートさせるにはどのようにしたらよいでしょうか? 現在は、データベースのテーブルを下記のようにする対処方法しか思いつかないのですが、できれば上記テーブル構成のままソートさせたいのですが何か良い方法は御座いませんでしょうか? 例)  クライアントがA D B C の順にソートしたい場合 テーブル名:TB1 A  1  順位1 B  2  順位3 C  3  順位4 D  4  順位2 select * FROM TB1 A ORDER BY 順位 ASC 出力: 1 4 2 3

  • SQL複数テーブル間でのソート

    お世話になります、プログラム初心者です。 SQL + PHPでデータを必要条件でまとめてテーブル表示させ、ソートが出来るようなページを作成しています。 具体的には保険のプランやサービス内容、特約などの全体の情報が入ったテーブルがあり、そこからヒモつけられた別テーブルに年齢性別別の料金の表があります。 「男性」「女性」や「終身」「定期」等の条件による情報の収集は出来るようになったのですが、並び替えのところでつまずいております。 例えば「保険料の安い順」に並び替えようとすると各料金表のテーブルから持ってきた年齢性別などの条件に合わせた料金を比較しなければならないので2段階の動きとなりうまくいきません。 一つのテーブルであればSQLに「ORDER BY 」等の指定で出来るのですが、複数にまたがっている為、どのような考え方で進めればいいのか、また具体的にどのような方法があるのか。どなたかご教授頂けないでしょうか。

    • 締切済み
    • PHP
  • ソート順の配列に順位表示する

    Perlで、大きいソート順になっている配列があります。 その中には重複しているデータもあります @list = (100,80,80, 50, 50, 45, 10, 0, 0, 0); のような配列を @ranking = (1,2,2, 4, 4, 6, 7,10,10,10); と順位を格納させたいです。 簡単な方法がありましたら、教えてください。

    • ベストアンサー
    • Perl
  • MYSQLのソート方法

    MYSQLのデータベースより50音順、続いてアルファベット順でテーブル内の内容を全て表示したいのですが そのやり方がわからないのです。「ORDER BY」は数値に対して行うようですのでこれではできないと思っています。 何か良い方法はないものでしょうか。よろしくお願いします。

  • GROUP BYで集約されるときのソートを変えたい

    GROUP BYで集約されるときのソートを変えたい MySQLの5.1を使用しています。 テーブル"tbl"には、"no","id","score"の3つのフィールドがあり、 "no"は主キーです。 +---+----+-------+ | no | id | score | +---+----+-------+ | 1 | 10 | 10002 | | 2 | 10 | 10000 | | 3 | 10 | 10008 | | 4 | 11 | 10004 | | 5 | 12 | 10006 | +---+----+-------+ 上記の表から、 scoreの値が高い順にグループ化してソートしたいのですが、 以下のSQL文ではscoreが最初に登録されたものに集約されてからグループ化されてソートしてしまうため、 思い通りの結果が得られずに困っています。 ↓具体例 SELECT no, id, score FROM tbl ORDER BY score DESC GROUP BY id; +---+----+-------+ | no | id | score | +---+----+-------+ | 5 | 12 | 10006 | | 4 | 11 | 10004 | | 1 | 10 | 10002 | +---+----+-------+ ↓欲しいソート順 +---+----+-------+ | no | id | score | +---+----+-------+ | 3 | 10 | 10008 | | 5 | 12 | 10006 | | 4 | 11 | 10004 | +---+----+-------+ テンポラリテーブルはなるべく使用せずソートしたいのですが、 このような事は可能なのでしょうか? ご存知の方がいらっしゃいましたら教えていただけると助かります。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • PHP+MySQLでのソートについて

    PHP+MySQLを勉強中です。 例えば、商品テーブルに商品ID、商品名、価格、在庫数の4つのフィールドがあって、その表の各名称をクリックするとソート(例:オークションなどで現在価格をクリックするとソートなど[select * from 商品 order by 価格 asc])できるスクリプトをどのように作成すればよいか教えて下さい。

    • ベストアンサー
    • PHP
このQ&Aのポイント
  • WDC-433DU2H2-Bの接続が不安定で困っています。特に5GHzが不安定で、接続までに時間がかかります。パソコンで動画を見る際には映像が頻繁に途切れます。
  • 接続が不安定なWDC-433DU2H2-Bの解決方法を教えてください。
  • ぷらら光の契約プロバイダを使用しており、Windows10を利用しています。
回答を見る