而不是PHP In,我该怎么办?

我正在寻找一个可以标记项目的应用程序。当前,如果我们搜索多个标签,则会显示带有两个标签的内容的结果。它是包容性的,而不是排他性的。这是导致它的代码:

//app/content/Search/Mysql/Query.php:232
$tagWhere = array( $itemsOnlyTagSearch . \GDP\Db::i()->in( 'index_item_index_id', $tagIds ) );

例如,如果我搜索“ windows”和“ ios”标签,则带有Windows或iOS标签的内容会返回。

我想更新该行代码,以便仅返回同时带有“ windows”和“ ios”标签的内容。我怎样才能做到这一点?

评论
  • cet
    cet 回复

    您正在使用哪个库来构建查询?

    现在,您的查询就像

    SELECT * FROM TABLE_NAME WHERE index_item_index_id in (id1, id2) where id1 and id2 refers to the tagIds. You need to modify your query to use multiple where column = value expressions, e.g.

    SELECT * FROM TABLE_NAME WHERE index_item_index_id = id1 AND index_item_index_id = id2)

    如何在PHP中构造这样的SQL查询取决于您的ORM /查询类。