非常に奇妙なMySQLの動作を見つけました:
ウムラウト文字を含む文字列があり、その上でIF式を実行します。何かのようなもの:
IF(length(field) < 10, '', replace(field, "\n", "<BR>"))
それはうまくいきます。
ただし、これをCASEで置き換えると、結果は最初の賞賛に値しない文字にカットされます。
CASE WHEN length(field)<10 THEN '' ELSE replace(field, "\n", "<BR>") END
また、クエリにGROUPBY部分も含まれている場合にのみ発生することに気付きました。
CASEとIFの違いがわかりません。論理的な観点からは、どちらも正確に同じ結果を返すはずです。
これら2つのコマンドの違いがなぜあるのか誰もが知っていますか?