sql >> データベース >  >> RDS >> Mysql

MySQLクエリは期待を出力していないようです

    文字列を比較しているため、その行を取得しています。 "500" >= "60" ASCII文字の順序のため、trueです。

    minutesの種類を変更する必要があります データをフィルタリングするときに、値を列または解析します。例

    SELECT *, CONVERT(minutes,UNSIGNED INTEGER) AS minutes_int
    ...
    WHERE
    ...
    AND `minutes_int` >= 600
    ...
    

    文字列値を整数値と直接比較することもできます。例:

    AND `minutes` >= 600
    

    カンマを削除しますが、分をvarchar(11)として表すため、可能であれば列の形式を変更することを検討することをお勧めします。 正しくないため、理由もなく多くのスペースを占有することになります。



    1. MySQLストアイメージBLOBの悪いプラクティスのパフォーマンス

    2. スキーマ内のすべての無効なパッケージをコンパイルする方法は?

    3. MySQLでCASE..WHENを適切に使用するにはどうすればよいですか

    4. MySQLは、別のテーブルの列の合計に基づいてフィールドを更新するようにトリガーします