sql >> Database >  >> RDS >> Mysql

Jokertekens in kolomnaam voor MySQL

Nee, SQL biedt u geen syntaxis om zo'n selectie uit te voeren.

Wat u kunt doen is MySQL vragen om een lijst met kolomnamen genereer eerst de SQL-query op basis van die informatie.

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

laten we u de kolomnamen selecteren. Dan kun je in Python het volgende doen:

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

In plaats van stringconcatenatie te gebruiken, raad ik aan om SQLAlchemy te gebruiken in plaats daarvan om de SQL-generatie voor u te doen.

Als u echter alleen het aantal kolommen beperkt, is het helemaal niet nodig om een ​​dergelijke dynamische query uit te voeren. Het harde werk voor de database is het selecteren van de rijen; het maakt weinig uit om u 5 van de 10 kolommen te sturen, of alle 10.

Gebruik in dat geval gewoon een "SELECT * FROM ..." en gebruik Python om de kolommen uit de resultatenset te kiezen.



  1. Hoe configureer ik HikariCP voor postgresql?

  2. 6 leuke weetjes over Microsoft die u waarschijnlijk niet kent!

  3. niet-ondersteund Scannen, stuurprogramma opslaan. Waarde type []uint8 in type *time.Time

  4. Voer sp_msforeachdb uit in een Java-toepassing