これが可能かどうか私は思っていますか?
$wpdb->delete(
'table_name',
array('id' => array(1, 2, 3)),
array('%d')
);
したがって、この状況では、一度に3行を削除し、データベースを1回だけ呼び出す必要があります。私は自分のスクリプトで可能な削除をたくさん持っています。むしろ、すべてのIDをループ処理してそれぞれ個別に$wpdb->delete
を実行するのではなく、削除を一度実行するだけです。これは可能ですか?それがあるべきように思える...
いいえ、wpdb::delete
はWHERE field = X
以外のものを処理します しない 。代わりにquery
メソッドを使用することができます。
$ids = implode( ',', array_map( 'absint', $ids ) );
$wpdb->query( "DELETE FROM table_name WHERE ID IN($ids)" );