Vous cherchez un moyen de filtrer vos lignes d'une table de base de données SQL, MySQL ou MariaDB par des colonnes identiques ? Vous cherchez un Query pour jouer sur console ?
J'ai récemment traversé une situation où il était nécessaire de filtrer sur une table de base de données et d'afficher uniquement les lignes qui avaient deux colonnes avec les mêmes valeurs de texte. Après des heures de recherche, j'ai trouvé la solution simple et je la partage avec vous.
Je ne suis pas programmeur et je pense que la plupart des personnes qui recherchent ces conseils n'ont pas non plus beaucoup de sens du code.
J'utilise souvent le programme Navicat pour éditer des bases de données, il est assez rapide et pratique, en plus de vous permettre d'éditer des lignes et des colonnes avec la même liberté que Microsoft Excel ou Apple Numbers.
La plupart des gens utilisent PhpmyAdmin pour gérer les bases de données de leur site Web. Les deux vous permettent d'exécuter des scripts via l'onglet SQL ou Requête.
Utilisation de la requête SQL pour filtrer
Comme je ne suis pas un professionnel des bases de données, je ne savais pas qu'il était possible d'afficher des tables filtrées via un code de requête, mais heureusement, j'ai découvert.
Mon utilisation dans la base de données est entièrement consacrée à la suppression de lignes, à la recherche de textes et à l'utilisation du Search and Replace, je n'avais aucune idée que les codes SQL étaient super utiles.
J'ai personnellement utilisé ces codes pour vérifier les erreurs de traduction et trouver les lignes qui n'ont pas été traduites dans les tables de base de données de Translatepress.
Code de requête SQL
Les codes ci-dessous sont utiles pour :
- Trouvez des lignes égales à partir de différentes colonnes ;
- Trouvez différentes lignes de différentes colonnes ;
- Trouve un contenu égal dans deux colonnes ;
SELECT * FROM `databasename`.`tablename` WHERE colum01 = colum02 ORDER BY `id` LIMIT 500 OFFSET 0;
Le code que nous venons de voir utilise WHERE colum01 = colum02 pour afficher les lignes ayant des résultats égaux dans les deux colonnes. Le code peut être étendu à d'autres colonnes si vous le souhaitez.
Si vous souhaitez ajouter des filtres traditionnels pour trouver un certain texte, vous pouvez étendre le script avant de ORDER BY en ajoutant un AND comme dans le code ci-dessous :
SELECT * FROM `databasename`.`tablename` WHERE colum01 = colum02 AND (`colum01` LIKE '%text%') ORDER BY `id` LIMIT 500 OFFSET 0;
Après le AND, nous avons un code entre parenthèses qui filtre le texte uniquement dans la colonne 01. On utilise LIKE pour trouver des lignes contenant la valeur filtrée ou NOT LIKE pour trouver des lignes ne contenant pas la valeur.
Le script peut être étendu davantage en utilisant AND et un autre code. Maintenant, pour finir, nous allons afficher un autre code, mais au lieu d'afficher des lignes avec des valeurs égales, il affiche des lignes avec des valeurs différentes en utilisant
SELECT * FROM `databasename`.`tablename` WHERE colum01 != colum02 ORDER BY `id` LIMIT 500 OFFSET 0;
J'espère que ce code vous aidera à filtrer et à rechercher réellement des lignes avec des valeurs égales ou différentes dans des colonnes séparées en utilisant des filtres conventionnels LIKE et NOT LIKE.