PHP字段与数据库中相关字段的比较

时间:2014-01-08 09:45:38

标签: php mysql

我在数据库中有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类别的列表匹配。

这就是这些出价将如何自动发布到相关列表中。

这就是我的目标。

1 个答案:

答案 0 :(得分:0)

Coalesce从给定列表中选择第一个非空值。

SELECT * FROM levels l 
WHERE :var = COALESCE(l.lelvelThree, l.levelTwo, l.levelOne);

此查询将按给定顺序比较级别字段。