ITの隊長のブログ

ITの隊長のブログです。Rubyを使って仕事しています。最近も色々やっているお(^ω^ = ^ω^)

MySQL

Dockerでがんばってphp5.3とmysql5.5の環境を作る

依頼がきてやった。バージョンアップしませんか? docker imageはこちら github.com 学んだこと docker composeで管理したほうが楽 blog.amedama.jp 仕事でもちょっとだけさわったことあったけど、commandで実行するならいいけど、単純に実行しただけならす…

【MySQL & CakePHP2.x】任意の順番でソートしたい時

「順番を1、2、3ではなくて、2,3,1にしてほしい」 順番がゲシュタルト崩壊(?) データベース設計時、ここは順番が変わるかもしれない。ってどうやって予想すればいいかな。確かに順番が必要、って最初からわかっていたら、ソートキーのカラムを作…

【CakePHP3】Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails ~

なんかエラーが発生 SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`a-curation`.`post_metas`, CONSTRAINT `post_metas_ibfk_1` FOREIGN KEY (`id`) REFERENCES `posts` (`id…

MySQLで破損していたテーブルを復旧した件

WordPressにログインしようとアクセスしたら、摩訶不思議エラーが発生。と、会社の人たちから連絡。 mysql_query() unable to save result set ↑のエラーで検索すると、よくあるのはMySQLからの結果をPHPが受け取れないエラーが多いらしいが、今回はそうじゃ…

【MySQL】varchar型のカラムをinteger側で検索したいとき

商品のテーブルがあり、その中で登録しているカラム「商品の高さ」を"0cm〜30cmまで"みたいな検索を実装したかった。 普通に考えたらこんな感じ。 mysql> select * from items where height between '0' and '30'; しかし、その昔の仕様の際は「cm」と単位が…

MySQL5.7からは「VIRTUAL」って名前は使えません。

仕事で2ヶ月ぶりに触るコード。その間にアップデートされていたMySQL(5.5 => 5.7になってた) んで、とあるSQLでエラー吐いてた。 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server ve…

【CakePHP2.x】migartionプラグインを使ってテーブルのフィールドを変更したい

もうCakePHP3.xがでたのにまだ2かよって話ですかね。まだ移行できない気持ちはわかるけど。 2月から新しいプロジェクトに携わっていて、「しめた・・・!」と思い、「CakePHP3.xつかいましょうよ〜^^」なんて提案しようかなとメモしていたら、新しいサーバ…

MySQLって変数使えたんですね(´;ω;`)ブワッ

しかも、自分の中で問題になっていた。「存在しない日付の月集計」もこれを使えば解決できました。 select * FROM (SELECT CAST(DATE_FORMAT('2014-01-01', '%Y%m') + CAST(VIRTUAL.generate_series AS UNSIGNED) as CHAR) AS ym FROM (select 0 generate_se…

【SQL】日付の形式を変えるよ DATE_FORMAT()さん

SQLは本当便利な関数ありますね。 日付の形式を変更したい場合はDATE_FORMAT()さんにおまかせあれ。 SELECT DATE_FORMAT(created, '%Y%m') AS ym, -- yyyymmの形式で表示される COUNT(posts.id) AS count FROM posts GROUP BY DATE_FORMAT(created, '%Y%m');…

【SQL】日付でGroupingして、カテゴリっぽいテーブルを紐付けようとしたけど紐付けきれないときのCrossJoin

(タイトルがナンノコッチャ!!) 文字だけじゃわからないはずなので、テーブルを用意します。 posts id post_date category_id 1 2015-01-01 1 2 2015-02-12 2 3 2015-01-01 1 4 2015-02-12 2 5 2015-01-01 1 6 2015-04-12 2 7 2015-05-01 1 8 2015-06-15 …

【MySQL】テーブルでカラムのコメントを確認する方法

意外にも探すの手間取ったのでメモー mysql> show full columns from table_name; table_nameを任意に書き換えてくださーい。でわー。 ついでに結果も。。。 mysql> show full columns from tektiou_table; +--------------+-------------+-----------------…

【MySQL】Case文やべぇえええ!!!(°ω°;

最近この本読んでいます。 達人に学ぶ SQL徹底指南書作者: ミック出版社/メーカー: 翔泳社発売日: 2013/06/20メディア: Kindle版この商品を含むブログ (3件) を見る んで、この本に書いていること実行したらやばかったお(^ω^ update cooking set seasoning …

CakePHPで継続的インテグレーションその3

photo by jc-pics 第3回 前回はフィーチャーテスト(導入のみ)でした。 aipacommander.hatenablog.jp 今日はDBマイグレーションです。 ついに来ました。一番学びたかった項目(゚∀゚)キタコレ!! これまで、Gitで効率よくソース管理・共有してきたけど、DBだけが面…

【MySQL】SQLで置換を実行する

MySQLこんな関数あるのね。すごい便利だね。 REPLACE(string, fromString, toString) stirngからfromStringの文字列があれば、toStringに置換する。 これでヒャッハーできた。 mysql> update test_table set name = REPLACE(test_table, 'Aipa', 'Bapa');

【CakePHP】GMO iclusta でSQL文が長いよーってエラーがでたのでそれを解消するためにfindをOverrideした話

ERROR 1104 (42000): The SELECT would examine more than MAX_JOIN_SIZE rows; check your WHERE and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is okay な、なんだこのエラーは。。。 どうやら、MySQLの設定でSQL文が長いとダ…

【SQL】MySQLのテーブルで特定のフィールドの文字を大文字に変更する

前やったような。。。? mysql> update hogehoge_table set lower_string = UPPER(lower_string);

【MySQL】フィールドの値を小文字に変更する

あるフィールドの文字の値をすべて小文字にupdateしたいときに使ったコマンドをメモ mysql> update table set column_name = lower(column_name); これだけでできました。便利!

【Play Framework】play framworkでハマったエラー「[[IllegalStateException: Transaction is Inactive]]」

Play Frameworkって私の探し方が悪いかもしれませんが、ドキュメントが少なくてキツイ。。。 あれかな? そろそろ英語に覚醒(?)すべきではないだろうか。 さておき、対処方法をまとめる

【MySQL】テーブルのautoincrementをリセットする方法

こうすればいけたお(^ω^ = ^ω^) mysql> alter table cottage auto_increment = 1;

MySQLのBLOBをテキストに変換する方法

デスマ中です。 色々やったこと、覚えたいことを残したいけど、今回は軽いもので。 mysql> select id, CAST(description AS CHAR(10000) CHARACTER SET utf8) from posts; これ。posts.descriptionが、BLOBで読めなかったので、テキストに変換するコードです…

PHPとMySQLで「ハイフン」が入った変数、DB名を作成する方法

photo by xmodulo 中々投稿できなかったわ。久しぶりです。 最近、色んな人に匿名芸名がばれて、このブログにも知り合いが見に来るんだろうなと思いますが、特に◯ッチなブログでもなく、disっているブログでもないので、このまま平常運転していきます。 今回…

CakePHPのトランザクションを試してみる

photo by Son of Groucho こんな記事を見た。 嵐のコンサートがあるとダブルブッキングしてしまうホテル予約システムを作ってみた | 徳丸浩の日記 ((((;゚Д゚))))ガクガクブルブル CakePHPは大丈夫なの? 試してみる。(macです)

【MySQL】テーブルのカラムを削除する

alterのコマンド、検索しなくてもできるようになってきたわ。 カラムを削除 mysql> alter table [table_name テーブルを指定] drop [column 削除したいカラム名]; 複数 mysql> alter table [table_name] drop [column], drop [column2], drop [column3];

プログラミング言語によって、シングル・ダブルクォーテーションのどちらかで統一する必要はあるのか。調べてみた。

photo by BWJones クォーテーションとは? 引用符(いんようふ)は、約物の一つ。文中において、他の文や語を引用していることを示す役割を果たす記号で、多くの場合一対で引用部分を囲む。コーテーションマーク、クォーテーションマーク、クオーテーション…

CentOS7でCI環境のアプリケーション準備したときの対応まとめ

photo by osde8info 久々にCentOSをさわった結果・・・ - ITの隊長のブログaipacommander.hatenablog.jp CIだけじゃなくWebのテスト環境も用意しました。 やったことをメモ。また記事内のリンクに感謝m(_ _ )m

MySQLでよくわからないエラーが発生 MySQLでrootログインできなくなった人集まれー

photo by byte 突然だが、MySQLでログインができなくなった。 私は忘れっぽい正確なので、パスワードなどは全部φ(..)メモメモして保存しているんだけど、メモしたパスワードでもログインできない。 事象発生 とりま、色々調べてみる。 MySQLのパスワード忘れ…

ALTER TABLE causes auto_increment resequencing, resulting in duplicate entry '1' for key 'PRIMARY'

フィールドの名前を変更しようとしたらエラーが。 auto_incrementのフィールドに、0が入っているとこうなるらしい。 必要ないので、カラムを削除したら治った。

mysqldumpでエラー(mysqldump: Got error: 1045: Access denied for user 'db_name'@'localhost' (using password: NO) when trying to connect)

$ mysqldump -u user_name db_name > ~/dump.sql こんなコマンドをうつと、下記エラーが mysqldump: Got error: 1045: Access denied for user 'db_name'@'localhost' (using password: NO) when trying to connect p を付与したらできた $ mysqldump -u use…

MySQLの既存テーブルに新規フィールドを追加する方法

ッターン! ALTER TABLE table_name ADD fileds_name int not null default 1 AFTER abbreviation; # table_name -> テーブル名 # fileds_name -> 新規フィールド名

GMOクラウド VPSでCentOS6.2 ミドルウェアインストール・設定まとめ

photo by osde8info 疲れたお(^ω^ = ^ω^) 個人用メモなので、興味があるかただけ。。。