2014-08-04 4 views
0

Я пытаюсь сделать простое удаление из двух таблиц, но имена полей и значения одинаковы для каждого запроса, поэтому я пытаюсь объединить эти два в один запрос. Является ли это возможным?MySQL- Удалить поле из нескольких таблиц в одном запросе

$results = $mysqli->query("DELETE FROM `recent_keys`, `recent_queries` WHERE `expires` < '$now_ts'"); // not working 
+1

возможно дубликат [удалить из двух таблиц в одном запросе] (http://stackoverflow.com/questions/1233451/delete-from-two-tables -in-one-query) – Sugar

ответ

0

Вы не можете манипулировать двумя разными таблицами в одном запросе. попробуйте запустить 2 запросов сразу, разделяя их точкой с запятой:

$results = $mysqli->multi_query("DELETE FROM `recent_keys` WHERE `expires` < '$now_ts'; DELETE FROM `recent_queries` WHERE `expires` < '$now_ts';"); 
+0

Спасибо! И я предполагаю, что делать это в одном запросе будет быстрее, чем делать их обоим отдельно? (на самом деле этот запрос не работает ...) – JROB

+0

действительно. вы только отправляете запрос в базу данных один раз, следовательно, увеличиваете производительность. –

+0

@VolkanUlukut это не работает с 'mysqli-> query'->' Выполняет запрос к базе данных. '. Вам нужно будет использовать ['mysqi-> multi_query()'] (http://php.net/manual/en/mysqli.multi-query.php) -> 'Выполняет один или несколько запросов, которые объединены точкой с запятой ' – Sean

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