У меня есть webapp, который использует DataTables с обработкой на стороне сервера. У меня есть несколько запросов SQL, которые произвольно группируют данные в столбцах, так что я получаю запросы как это:Столбец Unkown с предложением UPPER в HAVING для псевдонима столбца
SELECT case `column`
WHEN 'value1' then 'group1'
WHEN 'value2' then 'group1'
ELSE `column` END AS `column grouped`, SUM(`2010`)
GROUP BY `colonne grouped`
Теперь я добавляю некоторую фильтрацию на основе пользовательского ввода, и я так:
SELECT case `column`
WHEN 'value1' then 'group1'
WHEN 'value2' then 'group1'
ELSE `column` END AS `column grouped`, SUM(`2010`)
GROUP BY `column grouped`
HAVING `column grouped` LIKE '%test%'
и он по-прежнему работает нормально, но мои беды приходят, когда я пытаюсь сделать все это дело Инсентив, и поэтому я:
SELECT case `column`
WHEN 'value1' then 'group1'
WHEN 'value2' then 'group1'
ELSE `column` END AS `column grouped`, SUM(`2010`)
GROUP BY `colonne grouped`
HAVING UPPER(`column grouped`) LIKE '%test%'
и теперь я получаю «# 1054 - Неизвестный столбец„столбец сгруппированы“в" с предложением "
В качестве временного решения, я что-то вроде этого:
SELECT case `column`
WHEN 'value1' then 'group1'
WHEN 'value2' then 'group1'
ELSE `column` END AS `column grouped` , SUM(`2010`)
GROUP BY `colonne grouped`
HAVING UPPER(case `column`
WHEN 'value1' then 'group1'
WHEN 'value2' then 'group1'
ELSE `column` END) LIKE '%test%'
Но это не очень удобно. Кто-нибудь знает, почему я не могу использовать UPPER с пользовательским псевдонимом?
Я использую MySQL 5.5.
вы пытались поставить UPPER на колонку и не так? – rbedger