Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

joaogil

select com 'and' e 'or'

Recommended Posts

pessoal como faço uma select assim

 

Selecionar cliente que email = $email and senha = $senha and (privilegio = admin ou privilegio = admin master);

 

Já tentei assim:

 

SELECT id_cliente, nome FROM clientes WHERE email = '$email' AND senha = '$senha' AND privilegio = 'admin' OR privilegio = 'admin master';
e tentei assim:

 

SELECT id_cliente, nome FROM clientes WHERE email = '$email' AND senha = '$senha' AND privilegio = 'admin' OR 'admin master';
nenhum jeito funcionou !!!?? (Sem usar LIKE).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falou você usar os parênteses, exatamente como escreveu lá:

 

SELECT id_cliente, nome FROM clientes WHERE email = '$email' AND senha = '$senha' AND (privilegio = 'admin' OR 'admin master');

Tenta aí, qualquer coisa fala.

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso mesmo

 

porque desse modo:

SELECT id_cliente, nome FROM clientes WHERE email = '$email' AND senha = '$senha' AND privilegio = 'admin' OR 'admin master';

mesmo se a senha ou o email estiverem incorretos ele vai buscar a condição

 

privilegio = 'admin' OR 'admin master'

 

se tiver ao menos 1 resgistro com privilegio "admin" ou "admin master"

a instrução retornará verdadeira e vai pegar o primeiro registro que encontrar em ordem crescente.

 

 

por isso deve-se usar os parênteses que o walace mencionou:

 

 

SELECT id_cliente, nome FROM clientes WHERE email = '$email' AND senha = '$senha' AND (privilegio = 'admin' OR 'admin master');

essa instrução vai buscar:

onde o email é igual à variável email

e senha é igual à variável senha

e se a instrução dentro do parênteses for verdadeira

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aí pessoal valeu deu certo, parecia que eu estava prevendo que voces iriam dizer pra eu colocar o parênteses...

 

Só que tive que fazer assim dentro do parênteses:

 

(privilegio = 'admin' OR privilegio = 'admin master')

 

e NÂO assim:

 

(privilegio = 'admin' OR 'admin master')

 

Obrigado !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.