WordPress更新查询不等于

时间:2016-08-20 作者:user2477139

我正在尝试编写id不等于5的更新查询

我想要这样的输出,但不工作。

UPDATE `wp_messg` SET `is_read` = 1 WHERE `job_id` = 1 AND `biv_id`!=5

    $id=5;

    $wpdb->update( 
        \'wp_messg\', 
        array( 
            \'is_read\' => 1, // string
        ), 
        array( \'job_id\' => $id,\'biv_id\' => $id  ),

        array( 
            \'%d\',   // value1
        ), 
        array( \'%d\' ) 
     );
    }

2 个回复
SO网友:Rarst

这不是什么$wpdb->update() 方法实现。

如果有无法在API中表示的自定义SQL查询,则可以使用泛型按原样运行$wpdb->query().

SO网友:CodeMascot

无法使用NOT EQUAL 在里面$wpdb->update(). 下面查看的源代码update 方法-

public function update( $table, $data, $where, $format = null, $where_format = null ) {
    if ( ! is_array( $data ) || ! is_array( $where ) ) {
        return false;
    }

    $data = $this->process_fields( $table, $data, $format );
    if ( false === $data ) {
        return false;
    }
    $where = $this->process_fields( $table, $where, $where_format );
    if ( false === $where ) {
        return false;
    }

    $fields = $conditions = $values = array();
    foreach ( $data as $field => $value ) {
        if ( is_null( $value[\'value\'] ) ) {
            $fields[] = "`$field` = NULL";
            continue;
        }

        $fields[] = "`$field` = " . $value[\'format\'];
        $values[] = $value[\'value\'];
    }
    foreach ( $where as $field => $value ) {
        if ( is_null( $value[\'value\'] ) ) {
            $conditions[] = "`$field` IS NULL";
            continue;
        }

        $conditions[] = "`$field` = " . $value[\'format\'];
        $values[] = $value[\'value\'];
    }

    $fields = implode( \', \', $fields );
    $conditions = implode( \' AND \', $conditions );

    $sql = "UPDATE `$table` SET $fields WHERE $conditions";

    $this->check_current_query = false;
    return $this->query( $this->prepare( $sql, $values ) );
}
NOT EQUAL 尚未处理。因此,不可能使用NOT EQUAL 在…上$wpdb->update() 方法

相关推荐

将wp_Query替换为wp_User_Query

我在插件中制作了一些订阅者档案和单曲(个人资料页),其中我还包括了一个“用户单曲”模板,通过template_include. 不过,我正在尝试从插件中删除一些模板,以使其使用主题模板。我用了locate_template( \'single.php\' ) 从活动主题中选择单个模板。我没有使用全局wp_query 在本例中显示我的内容,但页面显示了基于查询默认值的循环(十篇帖子)。我想知道的是,我是否可以完全放弃默认查询,用wp_user_query 我可以将查询到的用户ID输入其中。然后我想筛选the