sql >> Databáze >  >> RDS >> Mysql

ORDER BY pro měnové hodnoty

Potřebujete dva sloupce:

  • jeden pro hodnotu, float/double (nebo celé číslo), které lze seřadit a použít v operacích, jako jsou součty atd.
  • jeden pro měnu (znak(3) podle standardu ISO 4217 ) používané pro jiné účely (zobrazení, možná konverze atd.)

Ukládání hodnoty i symbolu do varcharu je nesmyslné, zejména proto, že pozice symbolu měny se v jednotlivých zemích liší (může být na začátku nebo na konci), mezi symbolem a hodnotou může být mezera, nebo ne atd.

Jak již bylo řečeno, pokud nechcete změnit svůj stůl, něco takového by mohlo fungovat:

ORDER BY CAST(
  REPLACE(REPLACE(REPLACE(thecolumn,'$',''),'£',''),'₹','')
  AS DECIMAL(10,2)
)


  1. Co by vedlo k problému s neznámým objektem v záložním souboru při obnově zálohy databáze MySQL?

  2. PHP isset() s více parametry

  3. SQL pro kopírování hodnot z jedné tabulky do druhé

  4. Jak se automaticky přihlásit do MySQL ze skriptu Shell?