Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Curingas no nome da coluna para MySQL


Não, o SQL não fornece nenhuma sintaxe para fazer tal seleção.

O que você pode fazer é pedir ao MySQL uma lista de nomes de colunas primeiro, gere a consulta SQL a partir dessas informações.
SELECT column_name
FROM information_schema.columns
WHERE table_name = 'your_table'
    AND column_name LIKE 'word%'

vamos selecionar os nomes das colunas. Então você pode fazer, em Python:
"SELECT * FROM your_table WHERE " + ' '.join(['%s = 1' % name for name in columns])

Em vez de usar concatenação de strings, eu recomendaria usar SQLAlchemy em vez de fazer a geração de SQL para você.

No entanto, se tudo o que você está fazendo é limitar o número de colunas, não há necessidade de fazer uma consulta dinâmica como essa. O trabalho duro para o banco de dados é selecionar as linhas; faz pouca diferença enviar-lhe 5 colunas de 10, ou todas as 10.

Nesse caso, basta usar um "SELECT * FROM ..." e use o Python para selecionar as colunas do conjunto de resultados.