Existe-t-il un moyen facile de trouver des tableaux identiques, c'est-à-dire la même structure et les mêmes données, en utilisant MySQL et PHP? Je doute qu'il existe une commande MySQL, mais comment recommanderiez-vous de faire cela?Comment puis-je trouver des tables identiques dans MySQL et PHP?
Répondre
Sans plus d'informations sur la structure ou la taille de vos données, vous pouvez le faire:
SELECT IF(COUNT(*) = (SELECT COUNT(*) FROM table1) AND COUNT(*) = (SELECT COUNT(*) FROM table2),1,0) AS result FROM
(
SELECT * FROM table1
UNION
SELECT * FROM table2
) tables_joined
Mais attention, ce n'est pas une solution idéale. Pour les grands ensembles de données, il pourrait prendre un certain temps
Ceci est non testé, mais le principe général de la réponse est:
- joindre les deux tables. Si la structure est cohérente (au niveau de base - cela n'inclut pas les types de données, les index, etc.) alors vous n'obtiendrez aucune erreur
- Après la jointure, comparez le nombre de lignes au nombre de lignes dans l'un des tables
- Si le nombre de lignes est égal, les données sont identiques (sinon la jointure aurait retourné deux lignes).
- Sortie 1 si identique ou 0 sinon.
tables identiques DOIVENT avoir ids identiques, vous avez juste besoin de vérifier s'il y a une différence entre ids dans les deux tables, de sorte que le code suivant devrait être utile:
Select count(*) from table1 where table1_id IN (select table2_id from table2);
si le résultat est 0, alors il y a une différence.
La meilleure façon est de voir et de vérifier la structure de la table, comme (imaginez que nous avons 2 tables nommées orod1 et orod2):
select table_name,column_name,data_type
from information_schema.columns where table_schema='orod_schema' and table_name ='orod%';
Les ID peuvent être identiques mais les données du reste de la ligne peuvent être complètement différentes. Tout ceci confirmera que le nombre de lignes est le même. J'aime ton idée de confirmer une structure identique. –
- 1. MySql: interroger plusieurs tables dynamiques identiques
- 2. champs identiques dans la plupart des tables
- 3. Joindre des tables - MySQL & PHP
- 4. mysql - php. Comment trouver
- 5. Synchroniser des tables identiques dans des bases de données séparées avec php
- 6. mysql - combiner des colonnes et des tables
- 7. Même entité commerciale pour des tables identiques?
- 8. PHP MySQL Joining Tables
- 9. PHP, MySQL et les tables temporaires
- 10. besoin de trouver des différences entre 2 tables sql structurellement identiques
- 11. PHP MySQL Sélectionner plusieurs tables
- 12. trouver des valeurs manquantes dans MySQL
- 13. Comment trouver des doublons dans MySQL
- 14. Comment trouver la source des tables temporaires
- 15. Fusionner des tables dans MySQL - résumer des colonnes
- 16. Comparer deux tables et trouver des colonnes correspondantes
- 17. comment trouver des relations entre les tables
- 18. Sélectionner les données de deux tables avec des colonnes identiques
- 19. postgresql interroger sur plusieurs tables identiques
- 20. php/mysql créer des enregistrements en double avec plusieurs tables
- 21. une connexion à trois tables mysql et PHP?
- 22. Rejoindre deux tables similaires dans MySQL
- 23. Supprimer des tables mysql dans Rails
- 24. php mysql recherche dans 2 colonnes dans 2 tables
- 25. Comment trouver des "articles connexes" dans PHP
- 26. comment importer des tables mysql à SOLR
- 27. Récupération et présentation des enregistrements de tables jointes SQL avec PHP, Sqlite (ou MySql) et HTML
- 28. PHP/MySQL comment insérer et/ou mettre à jour deux tables MySQL?
- 29. plusieurs tables Mysql sélectionnez
- 30. Comment puis-je rejoindre 3 tables avec mysql & php?
Merci pour votre réponse, mais il ne semble pas fonctionner. Avec des structures de table identiques, l'expression renvoie '1' même si une table a une ligne et l'autre deux. –
Merci pour la mise à jour. En effet, si le compte était le même que le tableau 1, cela ne signifiait pas que le compte était le même que le tableau 2. J'ai mis à jour la déclaration IF en conséquence. –
Génial. Je vous remercie! –