gpt4 book ai didi

php - 匹配 MySQL 查询中的数组值

转载 作者:行者123 更新时间:2023-11-29 04:24:33 24 4
gpt4 key购买 nike

我会用一个水果的例子来说明我的问题:

我有一个包含一些 fruit_type id 值的数组。

$match= array("1","5","8").

我在“水果”表中有一个单元格 (fruit_type)。这个单元格的值是这样的:“1,3,9”。它包含属于该行的所有 fruit_type id。

现在我想让我的 SELECT 查询返回所有具有任何 id 的 1,5 或 8 的组合的所有行。

此查询将不起作用,因为它仅在单元格值为“1,5,8”而不是 1、5 或 8(或它们的组合或全部)时才起作用:

SELECT * FROM fruit WHERE fruit_type IN ('".implode("','",$match)."')

有什么想法吗?

编辑(我认为这个问题不够清楚..所以在这个例子中我想要的是:将(单元格)值的任何 1 或 3 或 9 与 $match 中的任何值(1 或 5 或 8)相匹配的查询。

最佳答案

执行此操作时,您将内爆中的每个单独数字用引号引起来:

SELECT * FROM fruit WHERE fruit_type IN ('" . implode("','",$match) . "')

结果查询将如下所示:

SELECT * FROM fruit WHERE fruit_type IN ('1','5','8')

所以应该是:

SELECT * FROM fruit WHERE fruit_type IN (" . implode(",",$match) . ")

所以结果查询看起来像这样:

SELECT * FROM fruit WHERE fruit_type IN (1,5,8)

此外,如果您是在 PHP 中执行此操作,那么我建议您在 DB 命令处理输出之前对输出进行回显,以实际查看最终的 MySQL 语句是什么。我敢肯定,如果您这样做了,您会立即发现问题所在。

关于php - 匹配 MySQL 查询中的数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14550529/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com