J'ai 2 tables MySQL: termlist et blacklist. Ils ont tous les deux un index sur le champ "terme" et la liste noire a un autre index sur le champ "statut".Comment éviter l'analyse complète de la table lors de la mise à jour avec la clause IN dans MySQL
Je veux mettre à jour le statut des termes paramètre termlist, qui apparaissent également dans la liste noire avec le statut de « A » à « B », je publie cette déclaration SQL:
update termlist set status = 'B' where term in (select term from blacklist where status = 'A')
Il provoque une analyse complète de la table sur la liste Je veux utiliser 'mise à jour avec jointure interne' mais je ne peux pas car il y a une clause where dans une instruction select. Je sais que je peux créer une table temporaire à partir de cette instruction select, puis mettre à jour la jointure interne avec cette table temporaire, mais c'est assez fastidieux si je souhaite effectuer cette mise à jour plusieurs fois.
Y a-t-il une seule instruction de mise à jour qui peut effectuer le travail sans analyse de table complète?
schémas de table d'index montrant information non typée à la main s'il vous plaît, 'show create table xxx' pour chaque – Drew
si cela est même nécessaire ... donc sauter ce que je viens de dire ... Vous voulez utiliser la mise à jour avec le modèle de jointure de table voir [ici] (http://stackoverflow.com/questions/15209414/mysql-update-join) – Drew