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()関数を組み合わせることで対応できます。 ...


MongoDBを使用していて、インターネット上にあるサンプルコードをコピペして実行すると、ReferenceError: getNextSequence is not definedエラーが発生することがあります。 これは、MongoDBにはも元々getNextSequence()という関数が存在していないた...


MongoDBでユーザ定義関数を登録する

2018年11月4日 | カテゴリ: MongoDB
MongoDBでは、以下のようにdb.system.js.save()関数を使うことで、ユーザ定義関数を登録することができます。 ```language-js # 関数を登録 db.system.js.save({ _id: "echoFunction", value : function(x) { return x; } }); # 登...


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


JetBrainのDBツールであるDataGripでは、SQLを実行したときに最初の500のみを返してくれます。 通常はレスポンスが速くなるので500行ぐらいで十分なのですが、大量データを分析したいときにこのデフォルト値を変更したい場合があります。 結果セットの...


mongoDBからデータをcsv形式で出力したい場合、下記のようにmongoexportコマンドを使用すると良いです。 ```language-bash $ mongoexport --db DB_NAME --collection COLLECTION_NAME --csv --fields id,name,created_at > output.csv ```


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ユーザのためのMongoDB入門

2018年5月31日 | カテゴリ: MongoDB
## Mongo DBのデータ階層 ```language-bash Database -> collection -> document ``` MySQLだと、下記の構成になる ```language-bash Database(schema) -> table -> row ``` ## 接続 - localhostにユーザ認証せずに接続 ```language-bash ...


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を起動している...