MySQL, SQL

ソート条件を付けない場合、以下のように出力されるテーブルでageがNULLのレコードは常に最下位にしてソートさせたい。 +----+---------+------+ | id | name | age | +----+---------+------+ | 1 | 名前1 | NULL | | 2 | 名前2 | 20 | | 3 | 名前3 | 30 | | 4 | 名前4 | 18 | | 5 | 名前5 | NULL | | 6 | 名前6 | 60 | +----+---------+ ...

MySQL, Solaris

Solaris 11 にGUIを入れた環境でMySQLをインストールする手順 パッケージマネージャを起動 mysqlでパッケージを絞り込む この中から mysql-51 mysql-51/library をチェック。 インストール/更新ボタンをクリック。 これで、パッケージはインストールされる。 mysqlをサービスとして設定する。 sudo svcadm enable mysql mysqlの起動確認 ps aux | grep mysql mysqlのプロセスが起動していることを確認。 my ...

MySQL, SQL

MySQLで任意の順番にソートをするにはfieldを使う id name 1 一郎 2 二郎 3 三郎 4 四郎 5 五郎 6 六郎 7 七郎 8 八郎 9 九郎 というテーブルがあるとする。 select * from users; とすれば、 id 1 2 3 4 5 6 7 8 9 という一覧が返ってくる select * from users order by field(id, 4,5,6); とすると id 1 2 3 7 8 9 4 5 6 という結果が返ってくる。 なぜか、fie ...

MySQL

select * from users \G;

MySQL

mysqldumpをする時に when using LOCK TABLES と言われたりしてダンプ出来ない時がある。 こんな場合は --skip-lock-tablesオプションをつける  

MySQL, ubuntu

UbuntuはパッケージでMySQLを入れるとすぐに起動しますが 外部からの接続が出来ないように設定されています。 /etc/mysql/my.cnf このファイルの中に bind-address           = 127.0.0.1 という行があります。 これは、IPが127.0.0.1からの接続しか受け付けないですよ、という設定で 127.0.0.1は自分自身のことなので、そのマシンの中からしかつなぐことが出来ません。 この設定行をコメントアウトすることで、その制限を外すことが出来ます ...

MySQL

MySQLのデフォルトのキャラセットをUTF-8にセットする Linuxの場合 /etcにmy.cnfか、/etc/mysqlにmy.cnfがあるので、それを開く の下に default-character-set=utf8 を追記 の下にも default-character-set=utf8 を追記 2012年09月13日追記 ※MySQL5.5からはで使用するキャラセットの設定はdefault-character-setではなく character-set-serverに変わります。 サー ...

MySQL

MySQLで巨大なSQLを送信したときに 「Got a packet bigger than 'max_allowed_packet' bytes」 というエラーが出る。 これは、MySQLサーバの設定で「max_allowed_packet」があり、ここで指定したサイズよりも大きいパケットを送信したときに出るエラーのようだ。 解決方法としてはmy.cnfののところに max-allowed-packet=8M といった感じで大きいサイズを指定することで解決する

MySQL, SQL

MySQL で ビットマスク を扱う

MySQL, SQL

先ほど、仕事でなぜか違うデータが抽出されるんだけど…という不具合を報告され よくよく調査したら、 code like '2001_1001_202_%' という条件を見つけた。 前任者は、2001_1001_202_100とか、2001_1001_202_の後にコードが付いたデータを抽出したかったのであろうが この条件だと2001_1001_2023というデータもヒットしてしまう。 これは、likeでは「_」は任意の一文字を意味する記号であるからである。 仕方が無いので、検索条件として使うコード ...

MySQL, SQL

MySQLにはmysqldumpというダンプツールがあるが、CSVファイルでデータを出力できると、加工もしやすい。 また、CSV出力時には基本、SQL構文での出力となるため、条件指定も容易になる。 書き方としては SELECT * FROM areas ORDER BY id INTO OUTFILE "/home/user/areas.csv" FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED B ...

MySQL, SQL

MySQLでユーザを削除する手順 権限を削除 REVOKEで、削除したいユーザの権限を削除する REVOKE構文について REVOKE priv_type ...] ON {テーブル名 | * | *.* | データベース名.*} FROM ユーザ名 参考に、guestユーザの権限を削除する実際の構文は REVOKE all on *.* from guest; ユーザを削除 DROP USER guest;