次のSQLステートメントでは、SQLiteは正しくソートされますが、MySQLはソートしません。
ただし、フィールド名を引用符で囲まない場合は、正しく機能します。
フィールドが引用符で定義されている場合、SQLiteではなくMySQLが正しくソートされないという動作を誰かが説明できますか?
"TotalOrders"
(二重引用符付き)は定数文字列です-それによる順序付けは何もしません...本質的には、正しくソートされているように見える、ソートされていない行のシーケンスを取得します。
あなたが欲しい
ORDER BY `TotalOrders`
バックティック付き。これは列識別子です。
ユーゲンの答えに加えて:
この動作はMySQLの構成に依存することに注意してください。
説明されている動作は、MySQLがデフォルト(非標準準拠の構成)のままである場合にのみ表示されます。
「ANSIモード」で実行するように構成されている場合、二重引用符は文字列リテラルではなく識別子に使用されます(他のほとんどすべてのDBMSと同様)。
この問題のもう1つの解決策は、SQL_MODEを「ANSI」に変更してMySQLをSQL標準に準拠させることでした。
次に、標準に準拠した一重引用符がリテラルに使用され、二重引用符が識別子に使用されます。