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

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

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

Похожие вопросы