LaravelのEloquentでsum()やavg()の集計関数を使うと、結果が数字でなく文字列で返ってきます。 ```language-php $totalScore = UserScore::where('team_id', $teamId)->sum('get_point'); \Log::info(json_encode($totalScore)); // "10" (10では...


Dockerを使って、使い捨てのMySQL5.7サーバを起動する方法です ## MySQLの起動 rootのパスワードはランダム生成し、アプリケーション用のユーザ名とパスワードは起動時に指定します。 ```language-bash $ docker run \ --name mysql \ -p 13...


MySQLで0xe2,0x80の改行を除去

2019年2月15日 | カテゴリ: MySQL
MySQLで改行を含むデータから、改行除去するする場合REPLACE()関数を使用することが多いです。 \rや\nといった改行コードに加えて0xe2,0x80といった特定の文字コード列を除去したい場合は、以下のようにchar()関数を組み合わせることで対応できます。 ...


MySQLを使用しているシステムで、アプリケーション側ではなくmysqldが動作しているサーバ側にて、発行されたSQLを全てロギングしたい場合は、my.cnfに下記の定義を追加します。 ファイル名はなんでも良いですが、一般的に/var/log/の下に置くことが多いで...


MySQLでの日付処理

2018年6月6日 | カテゴリ: MySQL | タグ:
## 日付列をYYYYMMDDHH24MISS形式で出力 ```language-sql select date_format(created_at, '%Y%m%d%H%i%s') from TABLE; ``` ## 日単位で件数をサマリーする ```language-sql select date_format(created_at, '%Y%m%d'), cou...


MySQLでユーザの情報を取得する方法です。 ## ユーザ一覧を取得する ```language-bash SELECT User, Host, Password FROM mysql.user; ``` ## ユーザ権限を確認する ```language-bash SHOW GRANTS FOR root@'%'; SHOW GRANTS FOR root@localh...


MySQLではmysqlコマンドでDBに接続する時に、接続先DBの情報をコマンドラインのパラメータで指定することが多いです。 ですが、この他に`my.cnf`ファイルに接続情報を書いておき、記載のDBに接続する方法があります。 今回は、my.cnfファイルを作成...


MySQLが提供しているサンプルデータベースのsakilaを非対話で作成する方法です。 ## sakilaサンプルデータベースを作成する mysql5.6以前を使用している場合は、mysqlコマンドの最後に指定しているパスワード指定(`-p`オプション)は不要かもしれま...


CentOS7.4にMySQL5.7をインストールする

2018年4月9日 | カテゴリ: MySQL
Vagrant上のCentOS7.4(bento/centos7.4)にMySQL5.7をインストールしたので、その時に実行したコマンドを残しておきます。 下記のコマンドを実行したのち、rootユーザの初期パスワードを設定する必要があります。 ```language-bash # インストール済み...


MySQLで"IODKU"は、どういう意味?

2017年11月29日 | カテゴリ: MySQL
MySQLに関するドキュメント見ると"IODKU"という略語が出てくることがあります。 これは、"Insert into ... On Duplicate Key Update"の頭文字をとった略語で、キーが重複したときにUpdateを行うInsert文の事です。


MySQLは、バージョン5.7からインストール直後に、rootユーザの初期パスワードとしてランダム文字列がセットされるようになりました。ですが、非対話でサーバのセットアップを行う場合、初期のパスワードがランダム文字列だと都合が悪い場合があります。 ...


MySQLを使っていて、データベースをcreate databaseしたり、データベースに接続する時に、下記のエラーが出ることがあります。 ```language-bash 1253 COLLATION 'utf8_unicode_ci' is not valid for CHARACTER SET 'utf8mb4' ``` ## 原因 これは、...


LinuxでMySQLを利用した開発を行っているとき、DBへの操作やバックアップはmysql/mysqldumpコマンドを利用してアクセスできます。 ですが、MySQLのバックアップや、データ集計を手元のPCでバッチ実行したい、WindowsからMySQLへコマンドラインでアクセ...


MySQLにSSHなどコマンドラインから接続している時に、データの傾向をつかむためにSQLだけで簡単なグラフを書く方法を説明します。 MySQLにはrepeat関数というものがあり、この関数では第二引数で指定した回数分、文字を繰り返し表示させることができま...


MySQLでrootのパスワードを忘れたときに、リセットする方法です。 mysqldを起動する時に--skip-grant-tablesオプションを使うと一時的に認証機構をOFFに出来るので、この機能を利用します。 --skip-grant-tablesオプション付きでmysqldを起動している...