sql >> Databasteknik >  >> RDS >> Mysql

Hur order by clause fungerar i mysql, ordering visar konstigt beteende

Problemet med detta beror på att det finns ett duplicerat värde som du anger för din beställning, alias antingen herr eller fru, det finns ingen garanterad vald beställning med detta eftersom de alla är herr eller fru.

om du vill säkerställa att den alltid kommer att vara i en specifik ordning bör du också inkludera primärnyckeln som en andra ordning för att hålla allt detsamma.. aka

ORDER BY CON_PREFIX ASC, M_ID ASC

som det ser ut just nu ORDER BY CON_PREFIX ger dig exakt vad den borde ge dig, prefixen i stigande ordning, det finns inget relaterat till gränsen för att orsaka detta, du har helt enkelt inte berättat för MySQL hur du annars vill att data ska returneras till dig.

för att svara på din PERSONAL OPINION redigera i frågan....det du beskriver är orimligt, tänk på det på det här sättet vilken standardordning som skulle användas för att dra ut data är nu borta eftersom du anger en beställning av. om det inte fanns någon order by på klausulen så har mysql ett generiskt urvalsmönster, men det är återigen borta när du väl har lagt en order av på frågan



  1. Strategi för att mappa flera arkiverade i en enda tabell till ett enda fält i en annan tabell

  2. hur man validerar heltalsdatatyp i Oracle-proceduren

  3. Exakt skillnad mellan Oracle Client och Oracle Database

  4. JSON främmande nycklar i PostgreSQL