SQL选择具有比较的列

时间:2015-05-17 19:46:22

标签: php sql mysqli

我有一个SQL表,其中有一个名为keywords的列。

表:

| id | keywords |

| 0 | music programming guitar |

现在我有一个像$array = array("boat", "water", "music");这样的数组。

我的目标是从keywords中的数组中选择至少包含其中一项内容的所有列。

SQL查询:

"SELECT * FROM table WHERE keywords IN ('".$array."')";

它什么都不返回。

1 个答案:

答案 0 :(得分:1)

我不打算采用我要描述的方法。正确的方法是建立一个单独的表,每个idkeyword有一行。这是一个联结表,它有如下行:

id       keyword
1        music
1        programming
1        guitar

这是在关系数据库中存储列表的正确方法。数据库具有列表的这种出色的数据结构。它被称为表,而不是字符串。

但是,如果你真的遇到这种情况,那么你可以破解你的解决方案。据推测,性能不是问题。

hack是将列表格式化为正则表达式,并将where子句创建为:

where keywords regexp 'boat|water|music'