Mysql
 sql >> Database >  >> RDS >> Mysql

Caratteri jolly nel nome della colonna per MySQL

No, SQL non fornisce alcuna sintassi per eseguire tale selezione.

Cosa puoi fare è chiedere a MySQL un elenco di nomi di colonne prima, quindi genera la query SQL da tali informazioni.

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

ti permette di selezionare i nomi delle colonne. Quindi puoi farlo, in Python:

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

Invece di usare la concatenazione di stringhe, consiglierei di usare SQLAlchemy invece di fare la generazione SQL per te.

Tuttavia, se tutto ciò che stai facendo è limitare il numero di colonne, non è affatto necessario eseguire una query dinamica come questa. Il duro lavoro per il database è selezionare le righe; fa poca differenza inviarti 5 colonne su 10, o tutte e 10.

In tal caso basta usare un "SELECT * FROM ..." e usa Python per selezionare le colonne dal set di risultati.