Как я могу сделать логическую логику на двух столбцах в MySQL? - PullRequest
5 голосов
/ 30 октября 2008

Я хочу сделать выборку в MySql, которая объединяет несколько столбцов ... что-то вроде этого псевдокода:

SELECT payment1_paid AND payment2_paid AS paid_in_full 
FROM denormalized_payments 
WHERE payment1_type = 'check';

Редактировать : payment1_paid и payment2_paid - логические значения.

Я не могу использовать какой-либо другой язык для этой конкретной проблемы, кроме MySql.

Спасибо за любую помощь!

Редактировать : Извините всех, кто дал мне предложения по суммированию и объединению, но я проголосовал за эти ранние ответы, потому что они все равно полезны. И спасибо всем за ваши невероятно быстрые ответы!

Ответы [ 7 ]

4 голосов
/ 30 октября 2008

Хорошо, логично, и вы можете сделать

Select (payment1_paid && payment2_paid) as paid_in_full 
from denormalized_payments 
where payment1_type = 'check';

Как видно здесь .

2 голосов
/ 30 октября 2008

Если под объединением вы подразумеваете конкатенацию, то это будет работать:

select concat(payment1_paid, payment2_paid) as paid_in_full
from denormalized_payments where payment1_type = 'check';

Если под комбинатом вы подразумеваете add, то это должно сработать:

select payment1_paid + payment2_paid as paid_in_full
from denormalized_payments where payment1_type = 'check';

[EDIT]

Для логического И:

select payment1_paid && payment2_paid as paid_in_full
from denormalized_payments where payment1_type = 'check';
2 голосов
/ 30 октября 2008

Просто сделай

Select CONCAT(payment1_paid, payment2_paid) as paid_in_full 
from denormalized_payments 
where payment1_type = 'check';

Вы можете указать любое количество полей.

1 голос
/ 30 октября 2008

Я не уверен, но вы хотите объединить?

SELECT CONCAT(ColumnA, ColumnB) AS ColumnZ
FROM Table
0 голосов
/ 30 октября 2008
select (payment1_paid && payment2_paid) as paid_in_full
from denormalized_payments where payment1_type = 'check';
0 голосов
/ 30 октября 2008

Если есть строки (или вы хотите рассматривать как строки строки, которые хотите объединить), вы можете использовать CONCAT и CONCAT_WS . Удачи!

0 голосов
/ 30 октября 2008

SELECT IF(payment1_paid = 1 AND payment2_paid = 1, 1, 0) AS paid_in_fill

...