mysql查询数组检查

时间:2012-06-09 03:55:30

标签: php mysql

对于你们中的一些人来说,这可能很容易,但我遇到了麻烦。如果查询数组中存在“$ my_id”,我需要执行一个mysql查询来检索数据。像这样的东西,或者想要达到同样结果的想法......

mysql_query("SELECT myArray FROM myTable WHERE my_id IN (myArray) LIMIT 1")

有什么想法吗?

修改

表中的数组由逗号

取消

2 个答案:

答案 0 :(得分:1)

mysql_query("SELECT myArray FROM myTable WHERE my_id IN ('".implode("', '", array_map('mysql_real_escape_string', $array))."') LIMIT 1");

修改

我想我知道你要做什么。您可以使用mysql LIKE,但它的效率非常低(它必须进行全表扫描)。您不应该在mysql中的一个字段中存储值列表。

您希望在实体之间创建一对多关系。因为你没有真正给我们提供太多信息,我们会将存储在你桌子中的实体称为foos。所以你有一个名为foos的表来存储你的foos。每个foo都与许多条形关系,这些条形图当前存储在“数组”中。这称为一对多关系。这些栏需要在单独的表调用bars中。您将每行存储一个条形图,并且每个条形图与一个foo相关联,因此您将foo的id与每个条形图存储在一起。如果您想找到与某个酒吧相关联的foos,您只需进行一次简单的加入。

如果可以在许多foos之间共享bar,则称为多对多映射。然后你需要一个表格用于foos,一个表格用于条形图,第三个表格用于将foos映射到条形图。然后,您可以搜索哪些foos与哪些条形相关联,哪些条形与哪些条形相关联。

答案 1 :(得分:0)

如果它是一维数组 - 只需内爆它:

implode("','", $array)

IN采用逗号分隔值。 http://www.w3schools.com/sql/sql_in.asp