Ниже у меня есть SQL-запрос, который является сервером как сценарий входа для пользователей, которые хотят либо ввести свое имя пользователя, либо адрес электронной почты.Выберите вложенный И ИЛИ. Как?
Я заметил, что, даже если кажется, что он будет проверять либо для входа, либо в качестве учетных данных для входа, нет.
username1 OR [email protected]
= Только на самом деле, глядя вверх по нику
SELECT *
FROM tblaccount
WHERE acc_user='username1' OR acc_email='[email protected]'
AND acc_password='letmein1' AND acc_confirmed='1' AND acc_active='1'
... если я изменить его ...
username0 OR [email protected]
= Это не возвращает записи.
Любые мысли?
'И' имеет более высокий приоритет, чем' ИЛИ'. Вы используете скобку или 'acc_user IN ('username1', '[email protected]')' –
используйте скобки. И имеет приоритет над OR, поэтому второй OR выполняется с помощью AND, а затем с первым OR. – Aris
Имейте в виду, что вы не должны хранить пароли в виде открытого текста. Аутентификация и безопасность довольно сложны - вам будет намного лучше использовать библиотеку, подходящую для вашего языка разработки. – halfer