sql >> Databasteknik >  >> RDS >> Mysql

Jokertecken i kolumnnamnet för MySQL

Nej, SQL ger dig ingen syntax för att göra ett sådant val.

Vad du kan gör är att be MySQL om en lista med kolumnnamn generera först SQL-frågan från den informationen.

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

låt oss välja kolumnnamnen. Sedan kan du göra, i Python:

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

Istället för att använda strängsammansättning rekommenderar jag att du använder SQLAlchemy istället för att göra SQL-genereringen åt dig.

Men om allt du gör är att begränsa antalet kolumner finns det inget behov av att göra en dynamisk fråga som denna alls. Det hårda arbetet för databasen är att välja raderna; det gör liten skillnad att skicka dig 5 kolumner av 10, eller alla 10.

I så fall använd bara en "SELECT * FROM ..." och använd Python för att välja ut kolumnerna från resultatuppsättningen.



  1. Ta bort poster från en postgresql-fjärrdatabas med hjälp av lokalt tillhandahållen lista

  2. hämta base64-bilder från databasen

  3. SQL - OM FINNS UPPDATERA ANNAT INSERT Syntaxfel

  4. Olika sätt att visa tabeller i MySQL Server