MySQL - выберите AS в ГДЕ по какой-то причине это не работает: select substring(rating, instr(rating,',') +1, +2) as val from users where val = '15'; Дает эту ошибку: ERROR 1054 (42S22): Неизвестный столбец "val" в разделе "where" Как мне это сделать? Ответ 1 Во-первых, вы не можете использовать ALIAS в предложении WHERE. Вы используете столбец, SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15' Причина такова: порядок работы - SQL, Предложение FROM Предложение WHERE Предложение GROUP BY Предложение HAVING Предложение SELECT Предложение ORDER BY ALIAS выполняется в предложении SELECT, которое находится перед предложением WHERE. если вы действительно хотите использовать псевдоним, оберните его в подзапрос, SELECT * FROM ( SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users ) s WHERE val = '15' Ответ 2 val не определен, его просто псевдоним .do он вроде этого SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = 15
Ответ 1 Во-первых, вы не можете использовать ALIAS в предложении WHERE. Вы используете столбец, SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = '15' Причина такова: порядок работы - SQL, Предложение FROM Предложение WHERE Предложение GROUP BY Предложение HAVING Предложение SELECT Предложение ORDER BY ALIAS выполняется в предложении SELECT, которое находится перед предложением WHERE. если вы действительно хотите использовать псевдоним, оберните его в подзапрос, SELECT * FROM ( SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users ) s WHERE val = '15'
Ответ 2 val не определен, его просто псевдоним .do он вроде этого SELECT SUBSTRING(rating, INSTR(rating,',') +1, +2) AS val FROM users WHERE SUBSTRING(rating, INSTR(rating,',') +1, +2) = 15