Mysql 在IFNULL()函数中使用另一个查询

Mysql 在IFNULL()函数中使用另一个查询,mysql,sql,Mysql,Sql,我正在寻找有关SQL查询的帮助。我有一个表payment_计划,其中包含payment_method、validto和validfrom列。付款方式可以是“抄送”或“现金”;但是,对于所有类型,它也可以是“*” 我正在尝试选择当前处于活动状态且仅与特定付款方式匹配的计划 但是,如果该付款方法不存在任何记录,它将检查以“*”作为付款方法的记录。我尝试使用IFNULL语句仅检查payment_method是否等于'*',如果没有payment_method等于'CC'的记录,但这样做会出错 那么有谁

我正在寻找有关SQL查询的帮助。我有一个表payment_计划,其中包含payment_method、validto和validfrom列。付款方式可以是“抄送”或“现金”;但是,对于所有类型,它也可以是“*”

我正在尝试选择当前处于活动状态且仅与特定付款方式匹配的计划

但是,如果该付款方法不存在任何记录,它将检查以“*”作为付款方法的记录。我尝试使用IFNULL语句仅检查payment_method是否等于'*',如果没有payment_method等于'CC'的记录,但这样做会出错

那么有谁知道更好的方法吗。下面是我尝试过的一个例子:


谢谢

我不明白你为什么要使用ifnull。这是你想要的吗

SELECT payment_method
FROM payment_plan 
WHERE ptid = 100 AND
      validfrom <= CURDATE() AND
      validto > CURDATE() AND
      payment_method IN ('CC', '*') ;

这只是支付方法的第二部分,它不是优先权,给我带来了麻烦,但这是完美的工作。非常感谢。
ORDER BY (payment_method <> '*') desc
LIMIT 1