根据params咨询

时间:2014-02-24 06:26:06

标签: mysql sql

有没有办法用所有参数进行通用查询并返回结果?而不是对每个参数组合进行查询。

示例:颜色,高度,宽度。在单个查询中按颜色,高度,宽度,颜色和宽度,颜色和高度选择....

1 个答案:

答案 0 :(得分:1)

如果没有关于数据类型的任何细节,我会假设它们是字符串或某种枚举值。像这样的参数化查询可能适合您:

SELECT *
FROM `table`
WHERE `color` LIKE :color
AND `height` LIKE :height
AND `width` LIKE :width;

然后你会为结果绑定不同的组合:

选择所有蓝色的东西

:color = "blue"
:height = "%"
:width = "%"

选择所有高大的东西

:color = "%"
:height = "tall"
:width = "%"

选择所有高大的蓝色东西

:color = "blue"
:height = "tall"
:width = "%%"

等等。 %子句中的LIKE值表示LIKE any number of characters