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 '0)' at line 1
Примечание: всякий раз, когда какое-либо одно значение содержит ноль в то время, эта функция всегда возвращает ноль (спасибо user @sanghavi7)
Ответ 2
Чтобы получить максимальное значение столбца по набору строк:
SELECT MAX(column1) FROM table; -- expect one result
Чтобы получить максимальное значение набора столбцов, литералов или переменных для каждой строки:
SELECT GREATEST(column1, 1, 0, @val) FROM table; -- expect many results
Ответ 3
Вы можете использовать GREATEST функцию с полями с недействительными значениями.
Если одно из этих значений (или обоих) может быть NULL, не используйте его (результат может быть NULL).
select
if(
fieldA is NULL,
if(fieldB is NULL, NULL, fieldB), /* second NULL is default value */
if(fieldB is NULL, field A, GREATEST(fieldA, fieldB))
) as maxValue
Вы можете изменить значение NULL на предпочтительное значение по умолчанию (если оба значения равны NULL).