2015-12-08 2 views
0

У меня есть набор результатов с динамической выборкой (campaignList), который я вставляю в таблицу.вставлять и удалять строки не в наборе результатов

foreach($campaingList as $campaignset) { 

    $c_res = $campaignset->getData(); 

    $sql = "INSERT IGNORE INTO campaigns (id, campaign_id, campaign_name) VALUES (". $data["id"] .", ". $c_res["id"] .", '". $c_res["name"] ."')"; 

} 

Это работает по назначению.

Вопрос в том, как удалить старые строки, которые не находятся в текущем наборе результатов? Если в таблице, например, 200 строк, и в следующий раз он получит 180 результатов в запросе. Как я могу вставить, удалить те 20 строк, которые не найдены в наборе результатов (campaignList)?

+0

Вы также можете удалить все строки перед вставкой! – Jinandra

+0

Можете ли вы добавить столбец для добавления «обновленных» строк? Если это так, установите значение 0 перед обработкой, установите его по 1 на каждую вставку и затем удалите все, что осталось 0. Но может быть проще просто удалить все записи перед вставкой, так как вставка просто добавит записи в любом случае. Зависит от того, почему вы вставляете и хотите ли вы обновлять существующие записи. – Kickstart

+0

Сначала удалите все строки из вашей таблицы * campaign * (DELETE FROM campaign), а затем выполните операцию вставки. –

ответ

0

Удаление всех строк сделает трюк.

Смежные вопросы