sql >> Database >  >> RDS >> Mysql

MySQL MOD() is kapot:is dit het beste alternatief?

MySQL geeft je geen nep resultaat, het gebruikt gewoon een andere implementatie van modulus dan je verwacht. Helaas lijkt de term modulus enigszins dubbelzinnig te zijn gedefinieerd, en de implementatie ervan verschilt van taal tot taal. Van wat ik kan zien in de Wikipedia on Modulo , de implementatie van MySQL maakt gebruik van afgekorte divisie :

r = a - n * trunc(a / n)

Waar u verwacht dat de implementatie floored division zal gebruiken :

r = a - n * floor(a / n)

Aangezien je je eerste tijdelijke oplossing op deze manier hebt geïmplementeerd, zou ik zeggen dat dit waarschijnlijk het beste alternatief is voor de Mod telefoniste.

Van wat ik heb gezien (en dit is een zeer snelle onwetenschappelijke analyse!), lijkt het erop dat meer dwingende programmeertalen afgekorte divisie implementeren en meer functionele wiskundige talen lijken gebruik te maken van vloerdeling .




  1. Afteltimer-php+mysql+js

  2. MySQL-volgorde van bewerkingen?

  3. Java:een opgeslagen procedure aanroepen in een Oracle-database

  4. Een MySQL-database opvragen met java