Как мне сделать логическую логику для двух столбцов в MySql, один из которых - Varchar?
Вопрос
Это продолжение этого вопроса . р>
Я хотел бы объединить три столбца в один при выборе MySql. Первые два столбца логические, а третий - строка, которая иногда равна нулю. Это приводит к странным результатам:
Select *, (payment1_paid && ((payment2_paid || payment2_type ="none"))) as paid_in_full from payments
Примечание. payment1_paid
- логическое значение, payment2_paid
- логическое значение, payment2_type
- varchar.
Примечание. Пожалуйста, не обращайте внимания на нелепость структуры этой таблицы. За каждым кусочком плохого кода есть длинное объяснение:)
Edit: Null не интересует меня значением varchar. Я только хочу знать, действительно ли это "ни один."
Заранее спасибо за помощь!
Решение
Если ноль не интересен, тогда для вас:
Select *,
(payment1_paid && ((payment2_paid || (payment_type IS NOT NULL && payment_type="none")))
as paid_in_full
from payments
Удачи!
Другие советы
Полагаю, вы хотите, чтобы значение NULL было ложным? Попробуйте (payment_paid IS NULL || payment2_type = " нет ")
Select *,
(payment1_paid && ((payment2_paid || coalesce(payment2_type,"null") ="none")))
as paid_in_full
from payments