Я пытаюсь написать функцию MySQL, которая возвращает ненулевое значение из двух значений (а, б) ..However, я получаю сообщение об ошибкефункция MySQL, которая возвращает ноны нуля
DELIMITER $$
CREATE FUNCTION GetNonNull(a,b) BEGIN
IF a = NULL THEN RETURN b; ELSE return a; ENDIF; END $$
DELIMITER ;
I получить эту ошибку:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'b) BEGIN IF a = NULL THEN RETURN b; ELSE return a; ENDIF; END' at line 1
Любая помощь была бы принята с благодарностью!
Почему бы вы сделать это, есть [COALESCE] (http://dev.mysql.com/doc/refman/5.5/ru/comparison-operators.html#function_coalesce) –
Вы не можете сравнивать 'NULL' с любым значением (даже' NULL') с помощью equals ('='). Как может что-то с неизвестным значением ('NULL') что-то равным? Подумайте об этом: я держу что-то в левом кулаке, и что-то в порядке. Они равны? Вы не можете сказать, потому что вы не представляете, кто из них, где вы находитесь; это похоже на сравнение «NULL». к чему-то. Всегда используйте 'IS NULL' или' IS NOT NULL' при попытке сравнить что-либо с 'NULL', и если у вас есть либо/или использовать' COALESCE', как предлагает @Darhazer. –