Salut à tous, j'ai des tables multiples que je veux obtenir des tables avec un nom de colonne spécifique que je peux avec le code suivant:
SELECT * WHERE columnName_I_Need = 1
Maintenant, je veux obtenir toutes les données des tables résultantes. Par exemple, obtenez toutes les colonnes et leurs données dans les tableaux résultants. Ceci est un exemple mais ne fonctionne pas:
SELECT COLUMN_NAME AS 'ColumnName' ,TABLE_NAME AS 'TableName' FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'DATABASENAME' AND COLUMN_NAME LIKE '%columnName_I_Need%' // Example not actual search ORDER BY TableName ,ColumnName;
Est-ce possible avec MySQL? Version MySQL: 5.5.5-10.3.23 MariaDB
3 Réponses :
Il s'agit d'une requête simple et basique pour accéder aux données de la table.
SELECT * FROM tablename
WHERE
peut inclure une condition ici.
*
est utilisé pour sélectionner chaque colonne.
On peut utiliser le nom de la colonne pour accéder à une colonne particulière.
Le «FROM» est absent de votre requête. De même, lorsque vous spécifiez un nom de colonne, il doit être écrit entre guillemets simples.
SELECT * FROM your_table_name WHERE columnName_you_Need = 'colum_id'
C'est assez compliqué. Si vous n'utilisez que du SQL dynamique, vous aurez besoin d'un mécanisme de bouclage. Ma recommandation est de générer le SQL, puis de l'exécuter manuellement:
SELECT GROUP_CONCAT('SELECT * FROM ', TABLE_NAME, ' WHERE ', COLUMN_NAME, ' = 1' SEPARATOR '; ' ) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'DATABASENAME' AND COLUMN_NAME LIKE '%columnName_I_Need%';
Copiez ensuite l'instruction et exécutez-la manuellement.
Eh bien, je pensais que ce serait assez compliqué. Mais votre suggestion me facilite la vie. Merci, je vais voter et essayer de l'accepter comme réponse. PS: Impossible de voter mais accepté comme réponse.