SQL Query获取其中的所有行

时间:2017-10-23 11:02:14

标签: mysql sql

我想获取在一个多值字段中具有特定值的所有行。我认为在一个例子中表达起来更容易:

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"是一个简单的字符串字段。第二个字段是使用多选输入生成的多值字段。

我想做两件事:

  1. 获取所有可用蓝色的汽车。

  2. 获取所有蓝色和绿色的汽车。

  3. 到目前为止我尝试过:

    SELECT * FROM Cars WHERE Available_Colors IN ('blue');
    

    仅获取Ferrary(没有KIA或TOYOTA)。

    这是我迄今为止所能实现的所有功能。我看了很多,但我能找到的只是使用IN运算符来获得许多具有不同单值字段的行(WHERE country IN(' Germany',' Japan&# 39;))所以任何帮助都会非常感激......

    修改

    我正在使用一个开源项目(vTiger),所以我根本不构建数据库,而只是处理从中获取信息或通过vTiger系统向其输入数据。因此,我对数据库实际结构的了解非常有限。

    然而,对我的查询使用LIKE运算符解决了我的需求问题。

1 个答案:

答案 0 :(得分:0)

这是非常糟糕的数据库设计

你可以尝试

查询:SELECT * FROM Cars WHERE Available_Colors LIKE'%blue%'

其他解决方案

修复您的数据库,以便您拥有另一个名为 CarColors 的表格,每个车一行,每种颜色一行。