初めてのシステムと日記

システムも日記も初めてです。

MySQL:プログラムのコード量を減らすMySQL関数

という記事を見つけて便利そうだったので。

バシャログさん 「プログラムのコード量を減らす MySQL 関数」
http://c-brains.jp/blog/wsg/09/10/28-144535.php


DATEまわりは特に便利そうでした。

今までとりあえずSELECT文で取ってきて、

PHP側でゴリゴリしてコード量が増えてたので。。

こういうデータがある。

mysql> SELECT created FROM users;
+---------------------+
| created             |
+---------------------+
| 2009-06-05 13:33:26 |
| 2009-06-10 11:56:45 |
+---------------------+
2 rows in set (0.00 sec)


DATA()でやると日付のみ取得できる

mysql> SELECT DATE(created) AS created FROM users;
+-------------------+
| created           |
+-------------------+
| 2009-06-05        |
| 2009-06-10        |
+-------------------+
2 rows in set (0.00 sec)


DATE_FORMAT()を使えば好きな形式で取得できる。

mysql> SELECT DATE_FORMAT(created,'%Y.%m.%d(%H:%i:%s)') AS created FROM users;
+----------------------+
| created              |
+----------------------+
| 2009.06.05(13:33:26) |
| 2009.06.10(11:56:45) |
+----------------------+
2 rows in set (0.00 sec)


あとはLOWER、UPPERも便利でした。

文字列を小文字、大文字に変換してくれる。比較に便利とのこと。

mysql> SELECT email FROM users WHERE email = LOWER('NAKAMURA@Example.COM');
+------------------------------+
| email                        |
+------------------------------+
| nakamura@example.com         |
+------------------------------+
1 row in set (0.01 sec)

↑はOracle、Doctrineでも使えました。