Как мне сделать логическую логику для двух столбцов в MySql, один из которых - Varchar?

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

  •  05-07-2019
  •  | 
  •  

Вопрос

Это продолжение этого вопроса .

Я хотел бы объединить три столбца в один при выборе 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top