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

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

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

Войти через центр авторизации
Похожие вопросы
SaveTime Москва
от 140 000 до 200 000 руб.
Договор24 Казань
от 60 000 до 120 000 руб.
20 февр. 2019, в 10:05
1800 руб./за проект
20 февр. 2019, в 09:00
1500 руб./за проект
20 февр. 2019, в 08:11
8000 руб./за проект