MySQLでCONCATするフィールドの値に1つでもNULLがあると、戻りがNULLになる

うーんとIFNULLでデフォルト値を設定する。

[code]
SELECT CONCAT(pref, city, area) FROM area;
[/code]

[code]
SELECT CONCAT( IFNULL(pref, ”), IFNULL(city, ”), IFNULL(area, ”) ) FROM area;
[/code]

そもそも、NULLじゃなくて、空文字列をDBに入れているつもりだったのに。。。
と思っていたらMDB2がNULLに変換している。
Oracleとの互換のため、これがデフォルトになっているようだけど、
Oracleは使いません。
ので、空文字列を突っ込めるようにします。

接続オプションのportabilityで設定します。

[code]
$db->setOption(‘portability’,
MDB2_PORTABILITY_ALL ^ MDB2_PORTABILITY_EMPTY_TO_NULL);
[/code]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です