codeigniter mysql столбец неизвестный столбец в предложении где - PullRequest
0 голосов
/ 25 сентября 2018

Я объявил переменную upload_source в SELECT, но получил ошибку

Неизвестный столбец 'upload_source' в 'предложении where'

   SELECT b.name as name, filename, upload_date, IF(filename LIKE '%.png%', 1, 0) as type, IF(ex_link!='', 0, 1) as upload_source, title, a.id
    FROM (`all_media` a)
    LEFT JOIN `admins` b ON `b`.`id`=`user_id`
    WHERE `a`.`approved` =  0
    AND `upload_source` =  0
    ORDER BY `filename` DESC

Как мнерешить?

Ответы [ 2 ]

0 голосов
/ 24 октября 2018

В SQL ключевое слово WHERE не может использоваться с агрегатными функциями .Попробуйте это с Имеющим предложение :

SELECT b.name as name, filename, upload_date, IF(filename LIKE '%.png%', 1, 0) as type, IF(ex_link!='', 0, 1) as upload_source,title, a.id FROM ( all_media a) LEFT JOIN администраторов b ON b . id = user_id WHERE a . утвержден = 0 HAVING upload_source= 0 ORDER BY имя файла DESC

0 голосов
/ 25 сентября 2018

Вы не можете использовать алиасное выражение / столбец в предложении where.Используйте то же выражение (которое вы определили в предложении Select) в предложении Where.

От Документация MySQL :

Псевдонимможет использоваться в списке выбора запроса, чтобы присвоить столбцу другое имя.Вы можете использовать псевдоним в предложениях GROUP BY, ORDER BY или HAVING для ссылки на столбец.

Стандартный SQL запрещает ссылки на псевдонимы столбцов в предложении WHERE.Это ограничение наложено потому, что при оценке предложения WHERE значение столбца еще может быть не определено.

Вместо этого выполните следующее (я импровизировал с upload_source = 0 до ex_link != ''):

 SELECT b.name as name, 
        filename, 
        upload_date, 
        IF(filename LIKE '%.png%', 1, 0) as type, 
        IF(ex_link!='', 0, 1) as upload_source, 
        title, 
        a.id
 FROM `all_media` AS a 
 LEFT JOIN `admins` b ON `b`.`id`=`user_id`
 WHERE `a`.`approved` =  0
   AND ex_link != '' 
 ORDER BY `filename` DESC
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...