站长网 MySql教程 php – 如何在SQL查询中使用数组

php – 如何在SQL查询中使用数组

所以我试图获取一个搜索字符串(可能是任意数量的单词)并将每个值转换为一个列表,以便在下面的IN语句中使用)此外,我需要计算所有这些值以用于我的计数过滤 $search_array = explode(” “,$this-search_string);$tag_count = count($search_array);$db = Conn

所以我试图获取一个搜索字符串(可能是任意数量的单词)并将每个值转换为一个列表,以便在下面的IN语句中使用)此外,我需要计算所有这些值以用于我的计数过滤

$search_array = explode(" ",$this->search_string);
$tag_count = count($search_array);

$db = Connect::connect();
$query = "select p.id
          from photographs p
          left join photograph_tags c
          on p.id = c.photograph_id
          and c.value IN ($search_array)
          group by p.id
          having count(c.value) >= $tag_count";

这目前没有结果,任何想法?

解:

$search_array = explode(" ",$this->search_string);

foreach ($search_array as $key => $value) {

    $new_search_array[] = "'$value'";

}

$search_string = implode(',',$new_search_array);

这给了我一个逗号分隔的列表
最佳答案

$search_array = implode(",",$search_array);

因为IN采用逗号分隔的值列表. (但是你需要确保引用$search_array的内容,如果它们是单词的话.)

一步完成可能如下所示:

function quoteAndComma($result,$each) {
  return $result . ',"'.$each.'"';
}

$search_array = array_reduce($search_array,"quoteAndComma",'');

本文来自网络,不代表站长网立场,转载请注明出处:https://www.zwzz.com.cn/html/jc/mysql/2021/0525/6198.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部