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

Jokertegn i kolonnenavn for MySQL

Nej, SQL giver dig ikke nogen syntaks til at foretage et sådant valg.

Hvad du kan er at bede MySQL om en liste over kolonnenavne først, generer derefter SQL-forespørgslen ud fra disse oplysninger.

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

lad os vælge kolonnenavnene. Så kan du gøre i Python:

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

I stedet for at bruge strengsammenkædning, vil jeg anbefale at bruge SQLAlchemy i stedet for at lave SQL-genereringen for dig.

Men hvis alt du gør er at begrænse antallet af kolonner, er der slet ikke behov for at lave en dynamisk forespørgsel som denne. Det hårde arbejde for databasen er at vælge rækkerne; det gør ikke meget at sende dig 5 kolonner ud af 10, eller alle 10.

I så fald skal du blot bruge en "SELECT * FROM ..." og brug Python til at udvælge kolonnerne fra resultatsættet.



  1. Hvad er fordele og ulemper ved at holde SQL i Stored Procs versus kode

  2. Hvad er forskellene mellem SQL og MySQL

  3. Hvordan bruger jeg CREATE OR REPLACE?

  4. hvorfor jeg undlader at oprette denne tabel på Android SQLite?