我在创建以下查询时遇到了麻烦。在MySQL中,我创建了一个View,以合并多个表,从而得到以下结果:

ProductBrand ProductName颜色
品牌-产品-红色
品牌A产品-B蓝色
品牌B产品C红色
品牌B产品-D绿色
品牌B产品-D棕色

现在,我希望人们能够在一个关键字和多种颜色上进行搜索。关键字应该在ProductBrand或ProductName中。为此,我编写了以下SELECT语句:

从View_Products中选择“%$ var%”这样的ProductBrand或“%$ var%”这样的ProductName

但是我需要用颜色扩展它。用户可以检查表单中的多种颜色。因此,通常我会从View_Products的SELECT中选择“ $ color1”之类的颜色或“ $ color2”之类的颜色。

如何以某种方式将它们粘合在一起,如果在表单中选择了一种颜色,则该颜色应该是强制性的。以普通语言显示:显示所有记录,其中ProductBrand或ProductName等于搜索词,并且颜色为color1或color2。

最佳答案

显示所有与ProductBrand或ProductName相等的记录
  到搜索词,颜色为color1或color2。


SELECT * FROM View_Products
WHERE (Productbrand LIKE '%$var%' OR ProductName LIKE '%$var%') AND
      (color LIKE '$color1' OR color LIKE '$color2')

09-11 11:24