Синтаксическая ошибка MySql; Удаление из двух таблиц в одном запросе возможно?

0

Невозможно выполнить два удаления в одном запросе, разделив их точкой с запятой?

Вот мой запрос:

$query="DELETE FROM $sql_table
WHERE EXISTS 
    (
    SELECT 1
    FROM classified
    WHERE classified.poster_password = '$pass'
    AND classified.ad_id = '$id'
    AND classified.classified_id = $sql_table.classified_id
    );
DELETE FROM classified
WHERE classified.poster_password = '$pass'
AND classified.ad_id = '$id'";

Это дает эту ошибку:

У вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с "УДАЛИТЬ ОТ ОТ классифицированных WHERE".poster_password = 'xxxxxxx' в строке 10

Пожалуйста, помогите мне решить эту проблему, она начинает приносить мне головную боль. Мне нужно это в одном запросе...

Спасибо

  • 1
    mysql_query() может принять только 1 запрос, если это то, что вы используете.
  • 0
    «Мне нужно в одном запросе ...» - уточните пожалуйста. Можете ли вы использовать что-то вроде mysqli_multi_query ()?
Показать ещё 1 комментарий
Теги:
database

3 ответа

1
Лучший ответ

Вы не указали, какую функцию PHP вы используете для отправки этого файла в MySQL. MySQLi multi_query может справиться с этим.

1

вы можете построить tmth следующим образом

DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id
  • 0
    Чтобы уточнить немного, создайте SELECT, который покажет запись, которую вы хотите УДАЛИТЬ, затем переключите «поля SELECT» с «УДАЛИТЬ таблицу», сохраняя FROM и все после. Только записи в таблицах, следующих сразу за DELETE, будут удалены.
  • 0
    я просто дал путь к размышлению) с такими просьбами вы можете делать все намного проще и лучше;
1

Взгляните на транзакции

Использование транзакций MySQL

BEGIN

COMMIT

Ещё вопросы

Сообщество Overcoder
Наверх
Меню