sql >> Base de Datos >  >> RDS >> Mysql

Comodines en el nombre de la columna para MySQL

No, SQL no le proporciona ninguna sintaxis para realizar dicha selección.

Lo que puedes hacer es pedir a MySQL una lista de nombres de columnas primero, luego genere la consulta SQL a partir de esa información.

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

vamos a seleccionar los nombres de las columnas. Entonces puedes hacer, en Python:

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

En lugar de usar la concatenación de cadenas, recomendaría usar SQLAlchemy en lugar de hacer la generación de SQL por usted.

Sin embargo, si todo lo que está haciendo es limitar el número de columnas, no es necesario realizar una consulta dinámica como esta. El trabajo duro para la base de datos es seleccionar las filas; hace poca diferencia enviarle 5 columnas de 10, o las 10 completas.

En ese caso, solo use un "SELECT * FROM ..." y use Python para seleccionar las columnas del conjunto de resultados.