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でも使えました。