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!

Foi útil?

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

Se são Cordas (ou você deseja tratar como cordas as colunas que você deseja combinar) você pode usar CONCAT e CONCAT_WS . Boa sorte!

select (payment1_paid && payment2_paid) as paid_in_full
from denormalized_payments where payment1_type = 'check';
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top