SQL

異なる型(STRING、INT)の比較

PHP & MYSQL環境を勉強中の管理人です。

日付単位でカウント数をまとめたい、と思っていた矢先に丁度良い関数を見つけました。

SELECT
   COLUMN,
   COUNT(*)
FROM
    TABLE
WHERE
    COLUMN 
GROUP BY
    DATE_FORMAT(COLUMN, '%Y%m');

この事例ですと月別の集計が可能なわけですが、私は少し戸惑いました。

上記例で示した「COLUMN」は実態はINT(8)でして、2013年10月14日であれば「20131014」となるのですが、文字列である必要はないんですね。最初はBETWEEN式で評価していたのですが、こちらも数値、文字列によるCOUNTの差異がありませんでした。

SELECT
   COLUMN,
   COUNT(*)
FROM
    TABLE
WHERE
    COLUMN 
BETWEEN
    20130101 and 20131231
SELECT
   COLUMN,
   COUNT(*)
FROM
    TABLE
WHERE
    COLUMN 
BETWEEN
    "20130101" and "20131231"

C言語からスタートすると型って結構重要なんですけど…PHPもSQLもそうですが楽チンな半面、中でどう処理されているのか気になってしまいます。PARSERが優秀なのかしら?

ABOUT ME
Nozomu.Kon
トータルソフトウェアコーディネーターがあなたのお困りを即時に解決!