我有一张这样的表:
vehicle colour animal softdrink
car red snake cola
jeep blue dog pepsi
现在我将传递查询这些参数:
jeep blue snake pepsi
如何按照与参数有多少列的顺序创建一个返回行的查询?
在此示例中,第二行必须返回到第一行,因为3列是相同的
答案 0 :(得分:2)
假设参数适用于每一列,您可以这样做:
select t.*
from t
order by ( (vehicle = @vehicle) +
(colour = @colour) +
(animal = @animal) +
(softdrink = @softdrink)
) desc;
这使用方便的MySQL简写,其中布尔值在数字上下文中被视为数字。在其他数据库中,您需要使用显式case
表达式。