J'ai une table MySQL avec 25 000 lignes.
Il s’agit d’un fichier CSV importé, je souhaite donc consulter les dix dernières lignes pour vérifier qu’il a tout importé.
Cependant, comme il n'y a pas de colonne ID, je ne peux pas dire:
SELECT * FROM big_table ORDER BY id DESC
Quelle instruction SQL me montrerait les 10 dernières lignes de cette table?
La structure de la table est simplement la suivante:
columns are: A, B, C, D, ..., AA, AB, AC, ... (like Excel)
all fields are of type TEXT
Les tables SQL n'ont pas de classement implicite, l'ordre doit provenir des données ..__ Peut-être devriez-vous ajouter un champ à votre table (par exemple, un compteur entier) et réimporter les données.
Cependant, cela ne donnera que l'ordre de l'importation et non les données. Si vos données ne sont pas classées, vous devez savoir comment les ajouter.
EDIT: vous dites
... pour s'assurer qu'il importait tout.
Quel est le problème avec l'utilisation du nombre de lignes?
Toutes les réponses ici sont meilleures, mais juste au cas où ........ Il y a moyen d'obtenir 10 derniers enregistrements ajoutés. (tu c'est assez peu fiable :)) encorevous pouvez faire quelque chose comme
SELECT * FROM table LIMIT 10 OFFSET N-10
N - devrait correspondre au nombre total de lignes de la table (SELECT count (*) FROM table). Vous pouvez le placer dans une requête unique en utilisant des requêtes préparées, mais je ne m'y intéresserai pas.
Sélectionnez dans le tableau, utilisez ORDER BYDESC pour trier dans l’ordre inverse, puis limitez vos résultats à 10.
SELECT * FROM big_table ORDER BY A DESC LIMIT 10
Vous pouvez utiliser l'option "ORDER BY DESC", puis la remettre dans l'ordre d'origine:
(SELECT * FROM nom_table ORDER BY id DESC LIMIT 10) ORDER BY id;
SELECT * FROM big_table ORDER BY A DESC LIMIT 10
Si vous effectuez une opération LOAD DATA INFILE 'myfile.csv'
, le moyen le plus simple de voir si toutes les lignes sont entrées est de vérifier show warnings();
Si vous chargez les données dans une table vide ou temporaire, vous pouvez également vérifier le nombre de lignes qu'il contient après l'insertion. .
l'exécution d'une requête de nombre (*) sur de grandes données coûte cher. Je pense en utilisant "SELECT * FROM table ORDER BY id DESC LIMIT n" où n est votre nombre de lignes par page est meilleure et plus légère
Une approche low-tech: faire cela avec SQL pourrait être exagéré. Selon votre question, il vous suffit de procéder à une vérification ponctuelle de l'importation.
Pourquoi ne pas simplement faire: SELECT * FROM ImportTable
puis faites défiler vers le bas de la grille des résultats et vérifiez visuellement les "dernières" lignes.
Si vous savez combien de lignes vous devez vous attendre, je créerais une table temporaire distincte dans la base de données de la structure attendue, vous l'ajouteriez à cela, puis vérifieriez le nombre ... Une fois que vous en êtes capable, vous pouvez manipuler ces données avant de les ajouter. dans votre table de production finale.
vous pouvez avec le code sélectionner 10 lignes de la fin du tableau . sélectionner * de (SELECT * FROM ordre de table1 par id desc LIMIT 10) comme ordre de table2 par id