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

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

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

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

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

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

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

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
6
0
3 314
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

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

Вы можете объединить любое количество полей, которое хотите.

Извините, я не указал, это логические значения. Спасибо!

Dan Rosenstark 30.10.2008 01:46

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

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';

спасибо, извините, вопрос касался логических значений, но это не было ясно позже. отличный ответ!

Dan Rosenstark 30.10.2008 01:52

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

SELECT CONCAT(ColumnA, ColumnB) AS ColumnZ
FROM Table

Извините, я не указал, это логические значения. Спасибо!

Dan Rosenstark 30.10.2008 01:45

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

Если это строки (или вы хотите обрабатывать столбцы, которые вы хотите объединить, как строки), вы можете использовать КОНКАТ и CONCAT_WS. Удачи!

Ответ принят как подходящий

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

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

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

Превосходно. Это то, что мне нужно, со ссылкой MySql для загрузки! Спасибо.

Dan Rosenstark 30.10.2008 01:54
select (payment1_paid && payment2_paid) as paid_in_full
from denormalized_payments where payment1_type = 'check';

На самом деле, вы должны использовать логическое И (&&), как упомянул @Robert Gamble, поскольку он должен позволять оценку короткого замыкания. Таким образом, если payment1_paid является ложным, это неверно. dev.mysql.com/doc/refman/5.0/en/…

dshaw 30.10.2008 02:26

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