代码之家  ›  专栏  ›  技术社区  ›  ganjan

按字段排序mysql命令不起作用,给出了错误的顺序

  •  2
  • ganjan  · 技术社区  · 14 年前

    我有个奇怪的问题。我在mysql中尝试了这个命令:

      SELECT `type`, 
             `bought` 
        FROM cars 
       WHERE owner = 'test' 
    ORDER BY type
    

    type    bought
    --------------------
    17      1281025497
    22      1287708417
    22      1287347244
    24      1287708324
    24      1287876461
    6       1287896659
    9       1287847238
    

    这没有任何意义。17大于22,9小于6?!

    3 回复  |  直到 14 年前
        1
  •  16
  •   Vincent Savard Midhun    14 年前

    显然,type column的类型是varchar或text(或者任何字符串类型)。你 使用整数类型。完全正常的是 “10”小于 一串

    如果确实不想更改列的类型,可以将其强制转换为整数。

        2
  •  5
  •   Doggett    14 年前
    SELECT `type`, `bought` FROM cars WHERE owner='test' ORDER BY CAST(`type` AS SIGNED)
    
        3
  •  0
  •   egrunin    14 年前

    如果 type 是一个 char 字段。

    数字 6和24,你在比较 “6”和“24”。