Desværre (for dit tilfælde) blev opførsel af LEAST ændret i MySQL 5.0.13 (http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#function_least ) - det plejede kun at returnere NULL, hvis alle argumenter er NULL.
Denne ændring blev endda rapporteret som en fejl:http://bugs.mysql.com/ bug.php?id=15610 Men rettelsen var kun til MySQL-dokumentation, der forklarer ny adfærd og kompatibilitetsbrud.
Din løsning var en af de anbefalede løsninger. En anden kan bruge IF-operator:
SELECT IF(Col1 IS NULL OR Col2 IS NULL, COALESCE(Col1, Col2), LEAST(Col1,Col2))