mysql> SELECT * FROM tb_hoge WHERE mosa ORDER BY mosa DESC;
みたいなクエリを実行すると、
mosaが0のレコードはHITしない。
なぜ・・・?
※調査結果
答えは簡単。
上の式をわかりやすく解釈すると
WHERE 条件 ORDER BY・・・
ってことで、WHEREを解釈した時点でレコードがあればORDER BYするってこと。
で、mosaが0だったら当然、FALSE扱いなので、
WHERE句の解釈の時点で該当レコードがなしとなり、ORDER BYのしようがなくなる。
試しに、
mysql> SELECT * FROM tb_hoge WHERE 1;
ってやるとtb_hogeの全レコードが表示され、
mysql> SELECT * FROM tb_hoge WHERE 0;
ってやるとEmptyになる。
なるほど~。