@Orbite

Как составить SQL запрос с переменной?

Здравствуйте, есть запрос с переменной @data_pers в которую записывается значение в зависимости от условия
SELECT arm_contr.contr_type,arm_documents.id_type,arm_contr.`Full`, arm_documents.nomdok, arm_documents.serdok, arm_contr.inn, arm_contr.kpp, arm_contr.birthday_date, 
	@data_pers := IF(arm_contr.contr_type = 1, 1, 0)
FROM arm_contr
LEFT JOIN arm_documents ON arm_documents.KodContr = arm_contr.ContrID
WHERE @data_pers = 0
LIMIT 10


Все нормально работает кроме WHERE @data_pers = 0, никак не хочет фильтровать. Подскажите как можно решить данную проблему. Спасибо
  • Вопрос задан
  • 110 просмотров
Пригласить эксперта
Ответы на вопрос 2
tsklab
@tsklab
Системный администратор, программист
Переменные пользователя.
Примечание: в команде SELECT каждое выражение оценивается только при отправлении клиенту. Это означает, что в условиях HAVING, GROUP BY, or ORDER BY не следует ссылаться на выражение, содержащее переменные, которые введены в части SELECT этой команды.
Ответ написан
@dimoff66
Кратко о себе: Я есть
В первую очередь непонятно зачем вам здесь переменная. Насколько я знаю - переменные не должны использоваться в запросе, где меняется их значение. В первом запросе они должны только вычисляться, а использоваться в последующих. В вашем случае подойдет обычное сравнение

WHERE NOT IF(arm_contr.contr_type = 1, 1, 0)
LIMIT 10
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Badoo Development Москва
от 140 000 до 180 000 руб.
Интерно Ростов-на-Дону
от 35 000 до 45 000 руб.
ПартКом Нижний Новгород
До 200 000 руб.
18 дек. 2018, в 20:42
5000 руб./за проект
18 дек. 2018, в 20:34
5000 руб./за проект
18 дек. 2018, в 20:01
10000 руб./за проект