web-dev-qa-db-ja.com

$ wpdb-> ARRAY()内の列値を削除しますか?

これが可能かどうか私は思っていますか?

$wpdb->delete(
    'table_name',
    array('id' => array(1, 2, 3)),
    array('%d')
);

したがって、この状況では、一度に3行を削除し、データベースを1回だけ呼び出す必要があります。私は自分のスクリプトで可能な削除をたくさん持っています。むしろ、すべてのIDをループ処理してそれぞれ個別に$wpdb->deleteを実行するのではなく、削除を一度実行するだけです。これは可能ですか?それがあるべきように思える...

1
Solomon Closson

いいえ、wpdb::deleteWHERE field = X以外のものを処理します しない 。代わりにqueryメソッドを使用することができます。

$ids = implode( ',', array_map( 'absint', $ids ) );
$wpdb->query( "DELETE FROM table_name WHERE ID IN($ids)" );
4
TheDeadMedic