我在数据库中有3个字段:
levelOne , levelTwo, levelThree // Table Name = levels
使用值:
levelOne = 300,
levelTwo = , // This field is empty
levelThree = , // This field is empty
现在我有一个必须与各个字段进行比较的变量。
$var = 200;
此 $ var 只能与levelOne进行比较,而不能与levelTwo和levelThree进行比较。等等所有
查询应该是什么样的?
数据库中字段的可能情况:
案例1:
levelOne = 300,
levelTwo = , // This field is empty
levelThree = , // This field is empty
案例2:
levelOne = 500,
levelTwo = 700,
levelThree = , // This field is empty
案例3:
levelOne = 500,
levelTwo = 700,
levelThree = 100,
现在应该将$ var与最后一个非空的水平进行比较
示例:
如果1 $var
应与levelOne进行比较。
如果2 $var
应与levelTwo进行比较。
如果应将3 $var
与levelThree进行比较。
基本上我有3个级别的分类。
用户将发布任何级别的列表。
现在买家将发布他想要出价的任何类别的预设。
现在,如果他在预设中提供了levelOne类别,它将与所有具有levelOne类别的列表匹配。
现在,如果他在预设中提供了levelTwo类别,它将与所有具有levelTwo类别的列表匹配。
现在如果他在预设中提供了levelThree类别,它将与所有具有levelThree类别的列表匹配。
这就是这些出价将如何自动发布到相关列表中。
这就是我的目标。
答案 0 :(得分:0)
Coalesce从给定列表中选择第一个非空值。
SELECT * FROM levels l
WHERE :var = COALESCE(l.lelvelThree, l.levelTwo, l.levelOne);
此查询将按给定顺序比较级别字段。