У меня есть таблица с миллионами строк. Мне нужно удалить все строки, у которых есть определенный столбец, равный одному из значений из 15k длинного списка.Удаление нескольких записей с разными идентификаторами из большой таблицы без использования цикла mysql php
Сейчас у меня есть это установка, как:
$list = array(
"Item1",
...
"Item15000"
);
foreach ($list as $item){
$sql = "Delete from table where `item`='$item'";
if ($con->query($sql) === TRUE) {
echo "$item removed from table <br>";
} else {
echo "Error removing $item from shop_meta: " . $con->error . "<br>";
}
}
В своем нынешнем состоянии она занимает много много часов, чтобы сделать это, и я должен сделать это для многих других аналогичных таблиц.
Как ускорить или оптимизировать запрос? Есть ли способ запросить их все сразу, чтобы сделать это быстрее?
ли временная таблица должна содержать только один столбец 'delete_value'? – Acidon
Да, ему больше не нужно. Если у вас уже есть эти значения в БД, вы можете присоединиться к тому, что они находятся в БД –
. Ах, это прекрасно, и в ФАКТЕ У меня уже есть таблица со списком элементов, которые мне нужно отфильтровать! Большое спасибо, мастер! – Acidon