1
votes

Obtenir toutes les données du résultat de la recherche dans MYSQL SQL

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


0 commentaires

3 Réponses :


0
votes

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.


0 commentaires

0
votes

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'


0 commentaires

0
votes

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.


1 commentaires

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.