我想获取在一个多值字段中具有特定值的所有行。我认为在一个例子中表达起来更容易:
Table Cars:
Car_Brand : Toyota
Available_Colors: green, blue
Car_Brand : Ferrari
Available_Colors: blue
Car_Brand : Dodge
Available_Colors: green
Car_Brand : Kia
Available_Colors: pink, blue
所以我的桌子是汽车,每排只有2个字段。第一个" Car_Brand"是一个简单的字符串字段。第二个字段是使用多选输入生成的多值字段。
我想做两件事:
获取所有可用蓝色的汽车。
获取所有蓝色和绿色的汽车。
到目前为止我尝试过:
SELECT * FROM Cars WHERE Available_Colors IN ('blue');
仅获取Ferrary(没有KIA或TOYOTA)。
这是我迄今为止所能实现的所有功能。我看了很多,但我能找到的只是使用IN运算符来获得许多具有不同单值字段的行(WHERE country IN(' Germany',' Japan&# 39;))所以任何帮助都会非常感激......
修改
我正在使用一个开源项目(vTiger),所以我根本不构建数据库,而只是处理从中获取信息或通过vTiger系统向其输入数据。因此,我对数据库实际结构的了解非常有限。
然而,对我的查询使用LIKE运算符解决了我的需求问题。
答案 0 :(得分:0)
这是非常糟糕的数据库设计
你可以尝试
查询:SELECT * FROM Cars WHERE Available_Colors LIKE'%blue%'
其他解决方案:
修复您的数据库,以便您拥有另一个名为 CarColors 的表格,每个车一行,每种颜色一行。