Pour supprimer des entrées dans une table MySQL pour lesquelles il manque des identifiants correspondants dans une autre table, suivez cette méthode :
SUPPRIMER b DU BLOB b
JOINDRE À GAUCHE LES FICHIERS f ON f.id = b.fileid
OÙ f.id EST NULL
Cette requête utilise LEFT JOIN pour faire correspondre les lignes entre les tables "BLOB" et "FILES". Il supprime les lignes de "BLOB" dont la colonne "id" correspondante dans "FILES" est NULL, indiquant l'existence d'entrées orphelines.
SUPPRIMER DU BLOB
OÙ N'EXISTE PAS (SÉLECTIONNEZ NULL
À PARTIR DE FICHIERS f
OÙ f.id = fileid)
Cette requête utilise une sous-requête pour vérifier si chaque ligne de « BLOB » a une ligne correspondante dans « FILES ». S'il n'y a pas de correspondance, la requête externe supprimera la ligne de « BLOB ».
SUPPRIMER DU BLOB
OÙ ID de fichier PAS DANS (SELECT f.id
À PARTIR DE FICHIERS f)
Cette requête utilise l'opérateur NOT IN pour identifier les lignes de la table « BLOB » pour lesquelles une valeur « fileid » n'existe pas dans la table « FILES », supprimant ainsi les entrées orphelines.
Lorsque vous effectuez des opérations DELETE, envisagez d'utiliser des transactions si votre moteur de base de données le prend en charge (par exemple, pas MyISAM). Cela vous permet d'annuler les modifications si une erreur se produit.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!