J'ai une requête SQL, folle en Python en utilisant Psycopg2. La requête lit des colonnes de la table arches
:Python, SQL: Définir les colonnes lues comme paramètre
rows = archesDB.read_all("""SELECT "+str(columns)[1:-1].replace("'","")+"
FROM arches
WHERE lower(arch) like '%%%s%%'""" % (arch.lower()))
Je veux paramètrer cette requête, afin qu'il ne précise pas les colonnes nécessaires en utilisant la concaténation de chaîne, mais en tant que paramètres - de façon beaucoup plus élégante.
La façon naïve est de SELECT *
, et de filtrer les colonnes dont j'ai besoin. Mais cela alourdit la BD et le réseau avec des données inutiles, donc je l'évite plutôt.
Des idées?
Adam
Autrement dit, utilisez 'SELECT *' et filtrez les colonnes souhaitées? –
Un mappage. Comme un dict. Et puis obtenir la liste des champs pour mettre dans la requête de cela. –