私はmysqlでそのようなコマンドを実行しようとしています:
DELETE FROM product_description, product, product_to_store, url_alias WHERE
product_description.name LIKE '%|%' AND product.product_id =
product_description.product_id AND product_to_store.product_id =
product_description.product_id AND url_alias.query =
CONCAT('product_id=',product_description.product_id)
ただし、エラーが発生します。
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE product_description.name LIKE '%|%' AND product.product_id = product_descr' at line 1
'DELETE'を'SELECT*'に置き換えると、クエリは魅力のように機能します。
mysqlドキュメントによると
現在、サブクエリでテーブルから削除して同じテーブルから選択することはできません。
だから今、私はPHPを使わずにそのようなクエリを実行する方法がわからないままになっています
編集済み
うまくいった私の最後のクエリ:
DELETE product_description, product, product_to_store, url_alias
FROM product_description, product, product_to_store, url_alias
WHERE product_description.name LIKE '%|%' AND product.product_id =
product_description.product_id AND product_to_store.product_id =
product_description.product_id AND url_alias.query =
CONCAT('product_id=',product_description.product_id)
したがって、ヒントは、JWが書いたように、DELETEの直後に4つのテーブル名をすべて追加して機能させることでした。