2016-02-14 4 views
0

У меня есть запрос в MySQL, который выполняет некоторые проверки подлинности, но он довольно длинный. Мне интересно, будет ли еще один способ сократить/упростить его, но на самом деле требуются все предложения.Есть ли более простой способ написать этот запрос?

select nickname from nicknames where nickname = '$nick' and password = '$md5pass' 
union 
select '$nick' as nickname from nicknames AS t1 where not 
    (nickname = '$nick' and password = '$md5pass') 
and not exists 
    (select 1 from nicknames where nickname = '$nick') 

ответ

1

Как насчет этого?

select coalesce(max(nickname), '$nick') 
from nicknames 
where nickname = '$nick' and password = '$md5pass'; 
+0

Это не сработает. Он возвращает строку, если пароль не указан, но псевдоним присутствует. – user5603796

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