chukenkenkou の回答履歴
- 肥大化しすぎたSQLiteがVACUUMできません
MovableTypeをSQLiteで運営していましたが、投稿総数が3000以上となり、SQLITEの容量が160MBになってしまい、動画が不安定かつ、遅い、削除できないデータがある、再構築がもはや不可能という状態に陥ってしまいました。スパムコメントやログの削除、いらないデータの削除などがんばりましたが、調べてみるとSQLITEはVACUUMすると容量が減るとありました。 早速、VACUUMできるツールTkSQLiteでVACUUMを試みましたが、容量が大きすぎるのか、何度やってもエラーが帰ってきてスリム化できません。大事なサイトなのでなんとかしたいのですが、この肥大化しすぎたSQLITEのデータをスリム化する方法は他にありませんでしょうか?
- ベストアンサー
- その他(データベース)
- 竹中 典明
- 回答数1
- postgresql 8.3のドキュメント
postgresql 8.3のドキュメントを探していますが、どうしても9のところに行ってしまいます。 ダウンロードできるURLがあれば教えて下さい。
- ベストアンサー
- PostgreSQL
- ngwave
- 回答数2
- SQLの合計関数について
お世話になります。 「価格(price)」と「個数(amount)」を掛けあわせてものの合計を取得したいのですがどのようにしたらよろしいでしょうか? | price | amount | ID ――――――――――― | 101 | 200 |0001 | 102 | 300 |0001 | 103 | 400 |0001 | 101 | 100 |0001 | 102 | 200 |0001 | 103 | 300 |0001 SELECT sum(price) as total FROM LIST Where id= '0001'; 上記の場合ですとpriceの合計だけなのですがこれを各行ごとに「price * amount」をしたものの合計を求める方法をご教授頂けたら幸いです。 よろしくお願いいたします。
- ベストアンサー
- その他(データベース)
- news_0203
- 回答数3
- MySQLで、指定の複数カラムのみコピーする方法
同じ構造の、 A_table と B_table があります。 それぞれに id date name address mail comment という、6つのカラムがあります。 変更があった際に、 A_table にcsvで全データをインポートし、 B_table に変更のあったカラム( date name address mail )の列だけをコピーしたいと思っています。 ( id )は A_table と B_table 共通にし、変更しないことを前提としています。 ( comment )は外部から編集できるため、csvデータが最新の情報とは限りませんので、 csvデータでの変更は考えておりません。 レコード数としては、多い方だと思います。 上記の作業をしようと思っているのですが、 >> B_table に変更のあったカラム( date name address mail )の列だけをコピー する方法をご存じの方がいらっしゃいましたら、何卒、ご教授お願い致します。 また、 変更したいカラムだけ、csvデータとidを共通にすればインポート可能かな…と探してはみたのですが無いようで、こちらはできないと考えても大丈夫なのでしょうか。 (phpmyadminを利用しておりますが、カラム名を指定してインポートはできるのですが、 指定しないカラムは空白になって上書きされてしまいます。) ついでで申し訳ないですが、宜しければアドバイスをいただければと思います。
- 締切済み
- MySQL
- rabbit-kimura
- 回答数2
- MySQLで、指定の複数カラムのみコピーする方法
同じ構造の、 A_table と B_table があります。 それぞれに id date name address mail comment という、6つのカラムがあります。 変更があった際に、 A_table にcsvで全データをインポートし、 B_table に変更のあったカラム( date name address mail )の列だけをコピーしたいと思っています。 ( id )は A_table と B_table 共通にし、変更しないことを前提としています。 ( comment )は外部から編集できるため、csvデータが最新の情報とは限りませんので、 csvデータでの変更は考えておりません。 レコード数としては、多い方だと思います。 上記の作業をしようと思っているのですが、 >> B_table に変更のあったカラム( date name address mail )の列だけをコピー する方法をご存じの方がいらっしゃいましたら、何卒、ご教授お願い致します。 また、 変更したいカラムだけ、csvデータとidを共通にすればインポート可能かな…と探してはみたのですが無いようで、こちらはできないと考えても大丈夫なのでしょうか。 (phpmyadminを利用しておりますが、カラム名を指定してインポートはできるのですが、 指定しないカラムは空白になって上書きされてしまいます。) ついでで申し訳ないですが、宜しければアドバイスをいただければと思います。
- 締切済み
- MySQL
- rabbit-kimura
- 回答数2
- 【SQL】select に ワイルドカードを使う
SQLのSELECT文に *(ワイルドカード)を使うのはあまりよろしくないと http://okwave.jp/qa/q6276536.html で掲載されています。 基本的に ”使う分だけ” カラムを一個一個指定していくのが定石でしょうか。 使いたいカラムが増えたら、その都度SELECT文にも項目を 足していくのでしょうか。 よろしくお願いします。
- ベストアンサー
- MySQL
- yuzuru0024
- 回答数2
- sqlite select 表示されない
原因が分からず困っております。 SQLITEで SELECT * from zip limit 5; だと表示されるのですが SELECT zip7 from zip limit 5; のようにcolumnを指定すると表示されません。 エラーも出ないし空白が5行出ているので、プログラム自体は動いているようなのですが・・・。 ※SELECT zip6 from zip limit 5; のように存在しないcolumnを指定するときっちりエラーが出ています。 環境はCENTOS+SQLITE2+poderosa コマンドラインで実行しています。 宜しくお願いします。
- ベストアンサー
- その他(データベース)
- noname#223733
- 回答数2
- MySQL 複数フィールドで不一致の抽出
ジャンル id ジャンル名 日 数 id ----+---------------+--------------+---------+------- 001 ワンピース 20110518 10 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110518 5 b002 仮に、このようなデータがあったとします。 数時間後には、↓のように変更がかかって送られてきます。 001 ワンピース 20110519 7 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110519 9 b002 データ配布元の問題で、内容が更新された時点で、まだデータが確定していないものは、前日のデータが混ざって送られてきます。 この仕様を改良することは、残念ながら全く不可能です。 しかし、このデータをそのままテーブルに取り込んでしまうと、当然、2行目が重複してテーブルに収まってしまい、その後のデータ抽出に支障がでます。 例の場合でいえば、既に存在している2行目のデータを捨て、1行目と3行目のみを抽出する方法を探しています。 そこで、全部のデータを持つのをテーブル1とし、新しく着いたデータ(0519を含む方)をテーブル2に一時保管て、 SELECT テーブル2.ジャンルid, テーブル2.ジャンル名, テーブル2.日, テーブル2.数, テーブル2.ID FROM テーブル2 LEFT JOIN テーブル1 ON (テーブル2.ID = テーブル1.ID) AND (テーブル2.数 = テーブル1.数) AND (テーブル2.日 = テーブル1.日) AND (テーブル2.ジャンルid = テーブル1.ジャンルid) WHERE (((テーブル1.ジャンルid) Is Null)); と不一致SQLをAccessで行ったところ、1行目と3行目までが抽出できました。 ジャンルid、日、数、id が一致しないものを取りだすという不一致クエリの改造です。 ところが、同じSQLを、本番であるMySQLで行ったところ、データが抽出できす、反応が無くなってしまいます。 サンプルでは件数を絞りましたが、実際には1回分のデータが1万件近くあり、さらにメインテーブルは60万件ほどになるため、量が多すぎるためとも思いますが、4時間経ってもクエリの結果が返って来ないのは、MySQLとなにか合わないのではないかと思います。 MySQLで、上記と同じく、ジャンルid、日、数、id の全てが一致しないデータを抽出する事は可能でしょうか? ちなみに、MySQLテーブルでは、idの前にインクリメントのフィールドを置き、インデックスもインクリメントのフィールドで作成してあります。 よろしくお願いします。
- MySQL 複数フィールドで不一致の抽出
ジャンル id ジャンル名 日 数 id ----+---------------+--------------+---------+------- 001 ワンピース 20110518 10 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110518 5 b002 仮に、このようなデータがあったとします。 数時間後には、↓のように変更がかかって送られてきます。 001 ワンピース 20110519 7 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110519 9 b002 データ配布元の問題で、内容が更新された時点で、まだデータが確定していないものは、前日のデータが混ざって送られてきます。 この仕様を改良することは、残念ながら全く不可能です。 しかし、このデータをそのままテーブルに取り込んでしまうと、当然、2行目が重複してテーブルに収まってしまい、その後のデータ抽出に支障がでます。 例の場合でいえば、既に存在している2行目のデータを捨て、1行目と3行目のみを抽出する方法を探しています。 そこで、全部のデータを持つのをテーブル1とし、新しく着いたデータ(0519を含む方)をテーブル2に一時保管て、 SELECT テーブル2.ジャンルid, テーブル2.ジャンル名, テーブル2.日, テーブル2.数, テーブル2.ID FROM テーブル2 LEFT JOIN テーブル1 ON (テーブル2.ID = テーブル1.ID) AND (テーブル2.数 = テーブル1.数) AND (テーブル2.日 = テーブル1.日) AND (テーブル2.ジャンルid = テーブル1.ジャンルid) WHERE (((テーブル1.ジャンルid) Is Null)); と不一致SQLをAccessで行ったところ、1行目と3行目までが抽出できました。 ジャンルid、日、数、id が一致しないものを取りだすという不一致クエリの改造です。 ところが、同じSQLを、本番であるMySQLで行ったところ、データが抽出できす、反応が無くなってしまいます。 サンプルでは件数を絞りましたが、実際には1回分のデータが1万件近くあり、さらにメインテーブルは60万件ほどになるため、量が多すぎるためとも思いますが、4時間経ってもクエリの結果が返って来ないのは、MySQLとなにか合わないのではないかと思います。 MySQLで、上記と同じく、ジャンルid、日、数、id の全てが一致しないデータを抽出する事は可能でしょうか? ちなみに、MySQLテーブルでは、idの前にインクリメントのフィールドを置き、インデックスもインクリメントのフィールドで作成してあります。 よろしくお願いします。
- COBOL仕様確認
COBOLの仕様確認ですが、 AのプログラムからBを呼ぶ場合、 Bで何らかの値をセットし、Aへ一旦、戻ります。 再度、AからBを呼んだ場合、 前回、Bを呼んだときにセットした値を このときに参照可能でしょうか? それともセットした値が初期化されているのでしょうか? 宜しくお願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- hakuba777
- 回答数3
- MySQL 複数フィールドで不一致の抽出
ジャンル id ジャンル名 日 数 id ----+---------------+--------------+---------+------- 001 ワンピース 20110518 10 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110518 5 b002 仮に、このようなデータがあったとします。 数時間後には、↓のように変更がかかって送られてきます。 001 ワンピース 20110519 7 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110519 9 b002 データ配布元の問題で、内容が更新された時点で、まだデータが確定していないものは、前日のデータが混ざって送られてきます。 この仕様を改良することは、残念ながら全く不可能です。 しかし、このデータをそのままテーブルに取り込んでしまうと、当然、2行目が重複してテーブルに収まってしまい、その後のデータ抽出に支障がでます。 例の場合でいえば、既に存在している2行目のデータを捨て、1行目と3行目のみを抽出する方法を探しています。 そこで、全部のデータを持つのをテーブル1とし、新しく着いたデータ(0519を含む方)をテーブル2に一時保管て、 SELECT テーブル2.ジャンルid, テーブル2.ジャンル名, テーブル2.日, テーブル2.数, テーブル2.ID FROM テーブル2 LEFT JOIN テーブル1 ON (テーブル2.ID = テーブル1.ID) AND (テーブル2.数 = テーブル1.数) AND (テーブル2.日 = テーブル1.日) AND (テーブル2.ジャンルid = テーブル1.ジャンルid) WHERE (((テーブル1.ジャンルid) Is Null)); と不一致SQLをAccessで行ったところ、1行目と3行目までが抽出できました。 ジャンルid、日、数、id が一致しないものを取りだすという不一致クエリの改造です。 ところが、同じSQLを、本番であるMySQLで行ったところ、データが抽出できす、反応が無くなってしまいます。 サンプルでは件数を絞りましたが、実際には1回分のデータが1万件近くあり、さらにメインテーブルは60万件ほどになるため、量が多すぎるためとも思いますが、4時間経ってもクエリの結果が返って来ないのは、MySQLとなにか合わないのではないかと思います。 MySQLで、上記と同じく、ジャンルid、日、数、id の全てが一致しないデータを抽出する事は可能でしょうか? ちなみに、MySQLテーブルでは、idの前にインクリメントのフィールドを置き、インデックスもインクリメントのフィールドで作成してあります。 よろしくお願いします。
- PHPMYAdmin リレーションについて
宜しくお願いします。 現在、mysql(PHPMYAdmin) を access から操作しているのですが、以下の事がわかりませんでした。 PHPMYAdmin のテーブル a と b に int型・AUTO_INCREMENT の a_auto b_auto を作成しています。それを access クエリで統合し、フォームを作成しました。 フォームで入情報を入力していると、 a_auto と b_auto が異なる値で保存されてしまいます。 これを同じ値で保存したいのですが、どうすればいいでしょうか?
- ベストアンサー
- MySQL
- akitakoma4
- 回答数1
- mysqlで文字列が一致した数を求め並べ替えたい
name | keyword --------------------- イチゴ | 果物,赤,甘い,春 レモン | 果物,黄色,酸っぱい,種あり,柑橘類 ミカン | 果物,橙,甘い,酸っぱい,柑橘類,冬,こたつ ブドウ | 果物,紫,甘い,皮あり,種あり,ワイン 人参 | 野菜,橙,固い 大根 | 野菜,白,おでん,冬 このように、キーワードをコンマで分けているテーブルがあるとします。 例えば「果物」「甘い」「種あり」の三つのワードでkeywordを検索した時 name ------- ブドウ (3ワード一致) イチゴ (2ワード一致) ミカン (2ワード一致) レモン (1ワード一致) 上のように一致するキーワードが多い順に表示させたいのですがうまくいきません select name from tb where keyword like '%果物% or keyword like '%甘い% or keyword like '%種あり% order by count(name); これだと上手くいきませんが、意味的にはこのようにしたいと思ってます。 joinで同じテーブルを結合しても思うように行きませんでした。 何か良い方法があればご教授お願いいたします。
- ベストアンサー
- MySQL
- gatati9184
- 回答数3
- MySQL 複数フィールドで不一致の抽出
ジャンル id ジャンル名 日 数 id ----+---------------+--------------+---------+------- 001 ワンピース 20110518 10 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110518 5 b002 仮に、このようなデータがあったとします。 数時間後には、↓のように変更がかかって送られてきます。 001 ワンピース 20110519 7 a001 001 ワンピース 20110518 6 a002 002 アクセサリー 20110519 9 b002 データ配布元の問題で、内容が更新された時点で、まだデータが確定していないものは、前日のデータが混ざって送られてきます。 この仕様を改良することは、残念ながら全く不可能です。 しかし、このデータをそのままテーブルに取り込んでしまうと、当然、2行目が重複してテーブルに収まってしまい、その後のデータ抽出に支障がでます。 例の場合でいえば、既に存在している2行目のデータを捨て、1行目と3行目のみを抽出する方法を探しています。 そこで、全部のデータを持つのをテーブル1とし、新しく着いたデータ(0519を含む方)をテーブル2に一時保管て、 SELECT テーブル2.ジャンルid, テーブル2.ジャンル名, テーブル2.日, テーブル2.数, テーブル2.ID FROM テーブル2 LEFT JOIN テーブル1 ON (テーブル2.ID = テーブル1.ID) AND (テーブル2.数 = テーブル1.数) AND (テーブル2.日 = テーブル1.日) AND (テーブル2.ジャンルid = テーブル1.ジャンルid) WHERE (((テーブル1.ジャンルid) Is Null)); と不一致SQLをAccessで行ったところ、1行目と3行目までが抽出できました。 ジャンルid、日、数、id が一致しないものを取りだすという不一致クエリの改造です。 ところが、同じSQLを、本番であるMySQLで行ったところ、データが抽出できす、反応が無くなってしまいます。 サンプルでは件数を絞りましたが、実際には1回分のデータが1万件近くあり、さらにメインテーブルは60万件ほどになるため、量が多すぎるためとも思いますが、4時間経ってもクエリの結果が返って来ないのは、MySQLとなにか合わないのではないかと思います。 MySQLで、上記と同じく、ジャンルid、日、数、id の全てが一致しないデータを抽出する事は可能でしょうか? ちなみに、MySQLテーブルでは、idの前にインクリメントのフィールドを置き、インデックスもインクリメントのフィールドで作成してあります。 よろしくお願いします。
- MySQL Date型にNULLが設定できない。
csvファイルからMySQLにデータを取り込む際に、Date型やint型にNULLを設定するにはどうしたらよいでしょうか。 以下のようなテーブルに | tTest | CREATE TABLE `ttest` ( `ID` bigint(20) NOT NULL, `title` text NOT NULL, `naiyou` varchar(100) DEFAULT NULL, `kaishi` date DEFAULT NULL, `owari` date DEFAULT NULL, `peirod` bigint(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=sjis | 以下のようなcsvファイルを読み込んだとき(*)、 10,テスト,2008-04-05,2009-04-23,43 11,テスト,2008-04-05,NULL,43 12,テスト,2008-04-05,2009-04-23,NULL 2行目のNULLで ERROR 1292 (22007): Incorrect date value: 'NULL' for column .... とエラーが発生します。 3行目のNULLでもint型ですが同様にエラーとなります。 一方、insertで行の追加以下のようにした場合は成功します。 insert into tTest values (12,テスト,'2008-04-05',NULL,NULL) 外部ファイルから読み込んだ場合にNULL値を設定するにはどのようにしたらよいのでしょうか。 (*)以下のコマンド LOAD DATA INFILE "E:\\work\\MySQL\\sample.csv" INTO TABLE tTest FIELDS TERMINATED BY "," LINES TERMINATED BY "\r\n";
- ベストアンサー
- MySQL
- moshimoshi_83
- 回答数1
- テーブルが作成できない
CREATE TABLE media ( id INT DEFAULT 0 primary key, media_name VARCHAR DEFAULT '', others text DEFAULT '', regis_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, update_date TIMESTAMP ); をMySQL 5.0.77で実行したところ ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' regis_date TIMESTAMP, update_date )' at line 3 のエラーが出てきてしまいます しかしMySQLを使い始めたばかりで今一理解が出来ず また、 text DEFAULT '' を使った他のテーブルは作成できています どこがおかしいのか教えていただけませんでしょうか、お願いします
- MySQLで別テーブルを参照し、レコードを消したい
お世話になります。MySQL4のデータベース上に2つのテーブルがあるのですが、 片方のテーブル(a)にあるフィールド(b_id)の値を参照し、もう片方のテーブル(b)のレコードを消していきたいのです。 具体的には以下のようなテーブル(a)とテーブル(b)があります。 TBL: a =========================== id b_id category =========================== 0 1 3 --------------------------- 1 2 1 --------------------------- 2 3 2 --------------------------- 3 4 2 --------------------------- TBL: b =========================== id name price =========================== 0 goodsA 1,000 --------------------------- 1 goodsB 500 --------------------------- 2 goodsC 250 --------------------------- 3 goodsD 2,500 --------------------------- 4 goodsE 1,800 --------------------------- やりたいことは、テーブル(a)の「category」フィールドが「2」以外であれば、 そのレコードの「b_id」にある数値を「id」にもつ、テーブル(b)のレコードを消していきたいのです。 上記の例だと、テーブル(a)のid「0」と「1」がcategoryに「2」以外を持っています。 この2つのレコードのb_idは「1」と「2」ですので、テーブル(b)のid「1」と「2」を消したいと思っています。 SQLについて知識がなく、困っています。どなたかご存知の方がいらっしゃいましたら、お知恵をお貸しください。 よろしくお願いします。
- COBOLで文字変数Aと絶対に一致しない特殊値は?
COBOLでプログラミングをしています。ある変数AとBがあり、どちらも領域はPIC X(1)です。 この変数Aを、いかなるときでも変数Bと一致させたくないとき、Bに入れる「END OF FILE」のような特殊な値って無いのでしょうか? そのような値が存在するならば、AかBにその特殊な値を入れておけばいいと思うのですが、 もし無いとすれば、以下のような処理をスマートにCOBOLで作るには、どのように作るのが一般的ですか? PERFORM文を用いて終了条件がA=Bのとき、 最初の処理では必ずPERFORMの中の処理を行い、 2回目からは終了条件で実行するかどうかを判定するような処理 よろしくお願いします。
- 締切済み
- その他(プログラミング・開発)
- oshioshios
- 回答数4
- SQLを教えて下さい
SQL server 2008 R2 と VB2010 で開発を行っています。 いま、月別の合計金額を計算するSQLがわからなくて困っています。 【売上明細テーブル】 ・明細ID ・年月日 ・得意先ID ・売上金額 出力したい内容は以下のような月別売上合計の推移です。 具体的にはこんな感じです。 得意先ID 3月売上 4月売上 5月売上 --------------------------------------- 0001 1,111 2,222 3,333 0002 2,222 3,333 4,444 0003 5,555 0 6,666 得意先の中には売上の無い月もあります(0003の4月)が、 この場合も一覧に出したいと考えています。 1つのロウの中に異なる条件の値がある場合のSQLの組み立てがわかりません。 どうぞ宜しくお願いします。
- ベストアンサー
- SQL Server
- panasobi
- 回答数2
- SELECTで行える処理について
SELECTで関数を使うことで、ある程度の計算や変換が出来るようなのですが、 ・62進数→10進数への変換 ・アルファベット大/小文字の相互変換(大/小文字を逆にする) はSQLだけで処理が出来ますか? MySQLのバージョンは問いません。
- ベストアンサー
- MySQL
- ria7546872
- 回答数1