2016-03-15 1 views
-1

У меня есть запрос, который я хочу, чтобы он выполнялся в состоянии, например, в api.Использование IF и выполнение запроса Если это правда

Человек:

Если ключ Апи находится в базе данных Api, сделайте следующий запрос, скажем, 'You Are Not Allowed'.

Что я пробовал:

Select IF (api.key = 'myapikey' , TrueQuery , 'You are not allowed') from api 

Моя проблема в запросе, я получаю много ошибок, запрос содержит "SELECT ... FROM ... WHERE ... GROUP BY. .. LEFT JOIN ".

Каков способ его достижения?

Следующий пример возвращает нуль:

SELECT CASE WHEN (SELECT api.app FROM api WHERE api.app = 'Test') 
THEN (SELECT items.rom_id FROM items) 
END 
+0

Редактировать TrueQuery для 'TrueQuery' – Basti

+0

THEN (SELECT items.rom_id FROM items) должен возвращать только один результат. Если есть более одного результата, вы получите сообщение об ошибке – Basti

+0

«TrueQuery» - это всего лишь подсказка к запросу, я использовал предложение Where, чтобы достичь этого. – Jaeger

ответ

1

Попробуйте это, не используя IF, но с использованием EXISTS.

select * 
from (TrueQuery) t 
where exists(select 1 from api where api.key = 'myapikey') 
+0

Просто переключившись на предложение Where, он выполнил эту работу. – Jaeger

Смежные вопросы