gpt4 book ai didi

php - 如何在mysql中搜索多列

转载 作者:行者123 更新时间:2023-11-29 11:49:22 25 4
gpt4 key购买 nike

这是查询的一部分,它应该在 posts 表中搜索上午、下午和晚上的列。

$add_here .= " AND posts.".$col." IN ('" . implode("',' ",$days) . "')";

$col 是保存用户提供的列名的数组或单个值的变量。即“早上”、“下午”、“晚上”。您知道如何更改上面的查询以在数组($col)中搜索吗?

下面的代码有效,因为我指定了列名称“afternoon”。我想知道如何用值数组替换文本“afternoon”!

 $add_here .= " AND posts.afternoon  IN ('" . implode("',' ",$days) . "')";

最佳答案

使用array_map构建一系列用OR分组的条件:

$days = ['sun','mon','tue'];
$col = ['afternoon','morning','night'];
$add_here = '';

$add_here .= sprintf(" AND (%s)",
implode(' OR ', array_map(
function($colx) use ($days) {
return sprintf("posts.%s IN ('%s')", $colx, implode("','",$days));
}, is_array($col) ? $col : array($col))
)
);

AND (posts.afternoon IN ('sun','mon','tue') OR posts.morning IN ('sun','mon','tue') OR posts.night IN ('sun','mon','tue'))

关于php - 如何在mysql中搜索多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34395598/

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