Как я могу выполнить логическую логику для двух столбцов в MySQL?

StackOverflow https://stackoverflow.com/questions/248683

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

Редактировать:«Payment1_paid» и «Payment2_paid» являются логическими значениями.

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

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

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

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

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

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

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

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

[РЕДАКТИРОВАТЬ]

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

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

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

SELECT CONCAT(ColumnA, ColumnB) AS ColumnZ
FROM Table

ВЫБРАТЬ ЕСЛИ (payment1_paid = 1 И payment2_paid = 1, 1, 0) AS paid_in_fill

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

select (payment1_paid && payment2_paid) as paid_in_full
from denormalized_payments where payment1_type = 'check';
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top