mysql

railsの本番サイトのデータベースを別サーバーで行うための方法

今回やりたいことです。 app/dbサーバーを分けて運用する そんなの当たり前だろ!って感じですが、デプロイするときに詰まったので、忘れないために書いておきます。 なお、今回のお話はmysqlでの運用にしておりますが、他のデータベースでも同じ感じでいけ…

SQLでクロス集計をしてみる

SQLって表も簡単に作成できるんだなって最近感動しております。 今回やろうとしていることは、クロス集計です。 年 春 夏 秋 冬 2000 10 10 8 9 2001 9 10 8 9 2002 10 10 8 10 年毎の作品を集計したいとかありそうじゃないですか。 ということで、やってみ…

mysqlのorder by fieldで指定のID順に並べる

どういった時に使うんだよwwwって思いましたが、使う感じになりました。 select * from icons where id in(4, 5, 6) order by field(id, 5, 4, 6) => mysql> select * from icons where id in(4, 5, 6) order by field(id, 5, 4, 6); +----+----------------…

railsのmysqlでemojiを使う方法

emojiを使おうと思ったら、色々と問題があるようなので、まとめます。 文字コード問題 collation問題 ハハパパ問題(参考) index問題 mysql側の設定 rails側の設定 文字コード問題 まず、emojiはmysqlのutf8では使用できません。 mysqlでemojiを使用するにはu…

mysqlでcsvエクスポートする

mysqlのcsv出力です。 SELECT * FROM テーブル名 INTO OUTFILE 'hoge.csv' FIELDS TERMINATED BY ',' ←区切り文字の指定 OPTIONALLY ENCLOSED BY '"'; ←項目間の囲う文字 以上です。

mysqlのexplainを使って、パフォーマンスを改善してみる

sqlのパフォーマンスで実験していたので、試した結果を載せます。 前提条件 Speakerモデルというのがあります。 テーブルの状態は下記のようになります。 show columns from speakers; +------------+--------------+------+-----+---------+---------------…

2つのカラムをくっつけて、likeで検索する方法

first_name, last_nameを二つのカラムがあるとします。 これを合わせて、両方をくっつけた場合の検索をしたい時です。 select first_name, last_name from users where type = "#{type}" AND CONCAT(first_name, last_name) like ? CONCATを使用して、カラム…

countについて

sqlが苦手な私です。 今回はcountについてです。 使い方 count(col_name) count関数は引数のcolに対しての行数をカウントしてくれます。 ただし、col_nameをつけるかどうかで動作が変わります。 mysql> select count(*) from household_account_book; +-----…

mysqlのgroup_by&havingについて

便利なグルーピングについて 前提条件 create table db_name.household_account_book (date date, expense_item varchar(20), memo varchar(100), deposit_amount integer, amount_invested integer) 前回と同じ条件です。 sqlの検索結果の加工 - mikami's e…

sqlの検索結果の加工

典型的なrailsエンジニアなので、sql文がなかなか覚えれないので、学習しています。 うん、書かないとどうあがいても覚えれないです。 容量が悪いので、量でカバーするしかない! というわけで、sql文の検索結果の加工についてです。 前提条件 こんなtableが…

mysqlの結果をファイルに出力

selectの結果をファイルに出力したい場合です。 -- 開始時 tee output.txt ←これだと現在のディレクトリになる select body from hoge notee -- 終了 以上です。

mysqlのコマンドラインの結果を整形したい時

結果が多くて、カラムがグチャグチャして見づらくなった時ですね。 通常はこう書くと思います。 select body from hoge; 末尾を¥Gにします。 select body from hoge¥G これで整形されて表示されます。 ¥はスラッシュのことです。