sql >> Databasteknik >  >> RDS >> Mysql

sqlalchemy func.group_concat och slumpmässig ordning av data

SQL-resultat är (multi) uppsättningar och har som sådana ingen ordning, såvida du inte uttryckligen definierar en. Detta gäller grupprader producerade av GROUP BY också; det finns ingen ordning inom grupperna, och därför får aggregat värden i vilken ordning den aktuella frågan beroende på plan, fysisk layout, schemaläggning etc. råkar producera. Lösningen är att explicit definiera beställa :

func.group_concat(t.name.op("ORDER BY")(t.name))

Detta använder en generisk operatorfunktion för att skapa den nödvändiga SQL-syntaxen. SQLAlchemy tillhandahåller aggregate_order_by kod> hjälpare för samma syntax, men den tillhandahålls endast för Postgresql-dialekten.




  1. MySQL:Automatisk ökning av temporär kolumn i select-satsen

  2. Hur man kör 2 eller fler SQL-frågor i PHP utan att sammanfoga tabeller

  3. förloppsindikator med mysql-fråga med php

  4. MySQL - Ange standardvärde för fält som en strängsammansättningsfunktion