SQLiteでソートした結果をファイルに反映させる方法

このQ&Aのポイント
  • SQLiteのソフトを使用して、特定のID以外の項目を削除し、日時でソートした結果をファイルに反映させたい場合、具体的な手順が必要です。
  • DELETE文を使用して特定のID以外の項目を削除し、SELECT文を使用して日時でソートすることは可能ですが、ファイルへの反映方法が異なるため、注意が必要です。
  • SQLite Database Browserを使用している場合、反映されない場合はコミット処理が行われていない可能性があるので、コミット処理を実行することで問題が解決する可能性があります。
回答を見る
  • ベストアンサー

SQLiteでソートした結果をファイルに反映させたい

あるソフトのデータがSQLiteの形式だと分かり、SQLiteのソフトで開きました。特定のID以外の項目を: DELETE FROM outbox WHERE user_id <> 7777777; で、消し、 SELECT * FROM outbox ORDER BY date_time; でソートしました。しかし、DELETEの方はファイルに反映されたのに、 SELECTの方は、ファイルに反映されません。 SQLite Database Browserというソフトを使っています。 何も分からない状態からここまで来たのです。 あと少しなので、よろしくお願い致します。

noname#259385
noname#259385

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

  • ベストアンサー
  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.1

SQLにはテーブルに変化を与えるものと テーブルからデータをっとて来るだけで元のテーブルには手を加えないものがあります DELETE、APPEND、UPDATEが前者です その他は元のテーブルには手を加えません

noname#259385
質問者

補足

早速のご回答、ありがとうございます。 http://www.net-newbie.com/sqlite/lang.html を見たのですがどうも良く分かりません。

関連するQ&A

  • sqlite_open()なんですが

    PHPで <?php $db=sqlite_open("rensyuu.sqlite",0666,$err); $row=sqlite_query($db,"select count(*) from sqlite_master where name='tb1';"); $kotae=sqlite_fetch_single($row); print($kotae); sqlite_close($db); ?> と打ったものを実行したら、 Warning: sqlite_open() [function.sqlite-open]: file is encrypted or is not a database in.... というエラーになりました。 どうもsqlite3で作ったのが原因っぽいんですがなにか ご存知でしたら教えていただけませんか。

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

    別テーブルのカラムを利用してソートしたい 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
  • rand()を使った場合の全件ソートを避ける方法ありますか?

    test1とtest2の結合しtest2にしかない複数のレコードから ランダムにc_idを取得したいのですがtest2で全件ソートしています。 もう少し、効率的な書き方はあるでしょうか? SELECT A.*, B.c_id FROM test1 A INNER JOIN (select a_id,b_id,c_id from test2 order by rand()) as B ON A.a_id = B.a_id AND A.b_id = B.b_id WHERE いろいろ GROUP BY いろいろ

  • OracleのUnion内でそれぞれのOrderBy結果を反映する方法

    OracleのUnion内でそれぞれのOrderBy結果を反映する方法について AテーブルからデータをBの昇順で一覧を取得する際、Bの特定のコードを先頭に持ってこようとしています。 例)金融機関テーブル(BANK)を金融機関コード(BANK_CK)の昇順で並び替えるが、全銀の'9999'を先頭に持って来たい。 (SELECT BANK_CD FROM BANK WHERE BANK_CD = '9999') UNION (SELECT BANK_CD FROM BANK WHERE BANK_CD <> '9999' ORDER BY BANK_CD); としてしまうと、「ORA-00907: 右カッコがありません。」のエラーとなります。 SELECT 0 "PRE_KEY", BANK_CD FROM BANK WHERE BANK_CD = '9999' UNION SELECT 1 "PRE_KEY", BANK_CD FROM BANK WHERE BANK_CD <> '9999' ORDER BY PRE_KEY, BANK_CD; としてやると、値は並び変わりますが、いらない"PRE_KEY"が取れてしまいます。 BANK_CDだけ取得する方法はありますでしょうか?oracle11gです。

  • SQLiteとファイルキャッシュではどちらが高速か?

    現在、SQLiteとPHPのキャッシュ(Cache_Liteなど)をともに使っているのですが、 どちらも使えそうな場合、どちらを使うか 迷いながら長い間使っています。 そこで、以下のような場合どちらを使うのがおすすめか 意見をお願いしたく思います。 SQLiteでいえば ID content 1 比較的長い文章1.. 2 比較的長い文章2.. 3 比較的長い文章3.. ..... キャッシュ(ファイル)であれば ファイル名:1 内容:比較的長い文章1.. ファイル名:2 内容:比較的長い文章2.. ファイル名:3 内容:比較的長い文章3.. ..... のようなものです。 SQLiteの場合、インデックスはIDにあり、検索時(SELECT時のWHEREなど)も 文章(content)の方で行うことはなく、IDでSELECTして取り出すのみです。 さらに、この [比較的長い文章..] は更新されたり、レコードorファイルごと削除される可能性があるとします。 このとき、データ数が数千数万~と膨大になるとき、 直近・将来的にどちらが遅くなる、あるいは不便になる(壊れるなど) ことがありうるでしょうか。 なお、こういうものは「一般的にどっちの方が良いとはいえない、場合によるものだ」ということは重々承知しておりますが、その上で おすすめや使い分けがありましたら、あるいは速度的な情報がありましたら、ぜひよろしくお願いいたします。

  • ビューのソートについて

    ビューにて下記のように設定し「SQLの実行」は指定通りソート されましたが、「ビューを開く」では、ソートされずテーブルの 並びのままでした。 SELECT TOP (100) PERCENT 端末コード, 端末番号 FROM dbo.T_端末 ORDER BY 端末コード そこで、下記のように設定を変更したところ「ビューを開く」でも ソートされるようになりました。 SELECT TOP (1000) 端末コード, 端末番号 FROM dbo.T_端末 ORDER BY 端末コード TOP (件数) に全データ数以上を指定すれば機能するのは解りますが 「ビュー」とはそんな使い方なのでしょうか?

  • PHP+MySQLでのソートについて

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

    • ベストアンサー
    • PHP
  • SQL文 この部分はなんていうのでしょう?

    SELECT T_テーブル1.フィールド1 FROM T_テーブル1 ORDER BY T_テーブル1.フィールド1; なら、 ”ORDER BY句” SELECT T_テーブル1.フィールド1 FROM T_テーブル1 WHERE (((T_テーブル1.フィールド1)="A")); なら ”WHERE句” と言いますが、 DELETE Table1.* FROM Table1; や UPDATE テーブル1 Set テーブル1.フィールド1 = "い" WHERE (((テーブル1.フィールド1)=”あ")); や DROP Table Table1; の deleteやupdateやdropの部分は何て言うのでしょうか? そのまま、SELECT句DELETE句などというのでしょうか?

  • ORDER BY RAND()でのソート

    こんにちは。 id states user_id ---------------------- 1 4 nakamura 2 2 yamada 3 5 yoshida 4 2 suzuki まずstatesの順番をランダム表示にしたいのですが、同じstatesはまとめて表示したいのです。 つまり id states user_id ---------------------- 3 5 yoshida 2 2 yamada 4 2 suzuki 1 4 nakamura このようになってくれるとありがたいのですが、どのようにしたらいいのでしょうか? トライしたのは SELECT * FROM table ORDER BY rand(),states これだとランダムになるのですが、statesでの ソートがうまくいきません。 GROUP BYみたいに一つにまとめてくれる機能があるといいんですが...。 よろしくおねがいします。

  • SELECT文のソート条件

    PL/SQLのカーソル定義にて困っています。 SELECT文のORDER BYでソートをかけますが、 例として、引数を2つ与えとします。 2つの値が同値であった場合、次にソートの条件となるのは何なのでしょうか? GROUP BY,WHERE句等はありません。 初歩的な質問過ぎて逆に中々見つけられませんでした。 どなたかご存知の方、教えて頂けますでしょうか。 よろしくお願いします。