【问题标题】:SQL query error or what it can be?SQL查询错误或它可能是什么?
【发布时间】:2010-07-11 08:39:05
【问题描述】:

sitizen(id_citizen,name,sname,age,id_city)

我尝试查询

select a.name_city,b.name,b.age from city a,citizen b where a.id_city = b.id_city and
b.name = 'DAVE' order by b.age desc

期待这样的结果

 - NY | DAVE | 65

 - NY | DAVE | 12

 - NY | DAVE | 3

但看到结果我无法理解

 - NY | DAVE | 65

 - NY | DAVE | 3

 - NY | DAVE | 12

如果我在查询结果中更改询问时的描述不是更好

 - NY | DAVE | 12

 - NY | DAVE | 3

 - NY | DAVE | 65

怎么可能?年龄是(整数)

此查询的其他名称可以正常工作,但不是全部

CREATE TABLE tz.citizen(
  id_citizen INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  sname VARCHAR(255) NOT NULL,
  age VARCHAR(255) NOT NULL,
  id_sity INT(11) NOT NULL,
  PRIMARY KEY (id_citizen)
)
ENGINE = INNODB
AUTO_INCREMENT = 5
AVG_ROW_LENGTH = 4096
CHARACTER SET latin1

整理 latin1_swedish_ci;

【问题讨论】:

  • 你能编辑你的问题,并包含来自SHOW CREATE TABLE citizen的输出吗?

标签: sql mysql tsql


【解决方案1】:

似乎正在使用字母数字排序。这可能是因为 age 字段实际上是字符串类型,例如 varchar,而不是您所说的整数类型。

运行SHOW CREATE TABLE citizen 仔细检查类型并在必要时将其更改为整数类型。

【讨论】:

    猜你喜欢
    • 2020-01-30
    • 1970-01-01
    • 2017-12-25
    • 1970-01-01
    • 2017-02-26
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多