Como posso fazer lógica booleana em duas colunas no MySQL?
Pergunta
Eu quero fazer uma escolha em MySql que combina várias colunas ... algo como isto pseudocódigo:
SELECT payment1_paid AND payment2_paid AS paid_in_full
FROM denormalized_payments
WHERE payment1_type = 'check';
Editar :. Payment1_paid e payment2_paid são booleans
Eu não posso usar qualquer outra língua para este problema particular do MySql.
Obrigado por qualquer ajuda!
Editar : Desculpe a todos que me deram sugestões para soma e concatenação, mas eu votou essas respostas iniciais até porque eles são de qualquer maneira útil. E graças a todos por suas respostas incrivelmente rápidas!
Solução
Ok, por lógica e você pode fazer
Select (payment1_paid && payment2_paid) as paid_in_full
from denormalized_payments
where payment1_type = 'check';
Como visto aqui .
Outras dicas
Apenas faça
Select CONCAT(payment1_paid, payment2_paid) as paid_in_full
from denormalized_payments
where payment1_type = 'check';
Você pode concat qualquer número de campo que deseja.
Se por combinar você concatenar média, então isso vai funcionar:
select concat(payment1_paid, payment2_paid) as paid_in_full
from denormalized_payments where payment1_type = 'check';
Se por combinar quer dizer adição, então isso deve funcionar:
select payment1_paid + payment2_paid as paid_in_full
from denormalized_payments where payment1_type = 'check';
[EDIT]
Para boolean E:
select payment1_paid && payment2_paid as paid_in_full
from denormalized_payments where payment1_type = 'check';
Não estou certo, mas que você quer dizer para concatenar?
SELECT CONCAT(ColumnA, ColumnB) AS ColumnZ
FROM Table
SELECT IF(payment1_paid = 1 AND payment2_paid = 1, 1, 0) AS paid_in_fill
select (payment1_paid && payment2_paid) as paid_in_full
from denormalized_payments where payment1_type = 'check';