db->getQueryBuilder(); $used->select('repository_id')->from('ngb_targets')->where($used->expr()->isNotNull('repository_id')); $keep = array_column($used->executeQuery()->fetchAll(), 'repository_id'); $delete = $this->db->getQueryBuilder(); $delete->delete('ngb_index'); if ($keep !== []) { $delete->where($delete->expr()->notIn('repository_id', $delete->createNamedParameter($keep, \OCP\DB\QueryBuilder\IQueryBuilder::PARAM_STR_ARRAY))); } $removed = $delete->executeStatement(); if ($removed > 0) { $output->info("Removed $removed cached index rows of locations that no longer exist"); } } }