你好,
我正在尝试进行选择
第一列,currentStatus,有 2 个变体:'Paid', 'Unpaid'
第 2 列,payment_id,只有在付款完成后才会填充,但在某些情况下它没有得到 payment_id,我想从选择中忽略这些。
我试图选择状态为“已付款”和“未付款”的所有行,但仅在有付款 ID 时才选择已付款,而未付款没有要选择的付款 ID。
SELECT DISTINCT
status
FROM table_name
WHERE
IF(status IN ('Unpaid'), '', paid_id <> '')
这不会返回任何未支付的行,我做错了什么?
答案 0 :(得分:0)
我试图选择状态为“已付款”和“未付款”的所有行,但仅在有付款 ID 时才选择已付款,而未付款没有要选择的付款 ID。
你想要的过滤逻辑:
where status = 'Unpaid' or
(status = 'Paid' and paid_id is not null)
如果 status
只采用这两个值,您可以将其简化为:
where status = 'Unpaid' or paid_id is not null