Mysql
 sql >> Base de données >  >> RDS >> Mysql

Caractères génériques dans le nom de la colonne pour MySQL

Non, SQL ne vous fournit aucune syntaxe pour effectuer une telle sélection.

Ce que vous pouvez faire est de demander à MySQL une liste de noms de colonnes d'abord, puis générez la requête SQL à partir de ces informations.

SELECT column_name
FROM information_schema.columns
WHERE table_name = 'your_table'
    AND column_name LIKE 'word%'

vous permet de sélectionner les noms de colonne. Ensuite, vous pouvez faire, en Python :

"SELECT * FROM your_table WHERE " + ' '.join(['%s = 1' % name for name in columns])

Au lieu d'utiliser la concaténation de chaînes, je recommanderais d'utiliser SQLAlchemy au lieu de faire la génération SQL pour vous.

Cependant, si tout ce que vous faites est de limiter le nombre de colonnes, il n'est pas du tout nécessaire de faire une requête dynamique comme celle-ci. Le travail acharné pour la base de données consiste à sélectionner les lignes ; cela fait peu de différence de vous envoyer 5 colonnes sur 10, ou toutes les 10.

Dans ce cas, utilisez simplement un "SELECT * FROM ..." et utilisez Python pour sélectionner les colonnes du jeu de résultats.