【问题标题】:MySql sorting float data typeMySql 排序浮点数据类型
【发布时间】:2017-09-10 13:44:07
【问题描述】:

大家好,我在对名为“change”的列进行排序时遇到问题,该列是数据库中数据类型为“FLOAT”的保留字。

尝试了不同的方法,但仍然无法得到它。

"select * from data order by CAST('change' AS SIGNED) DESC";
"select * from data order by ABS(change) DESC";
"select * from data order by ABS(change - float) DESC";
"select CAST(change as float) AS ABC* from data order by ABC DESC";

我尝试了很多不同的组合,但仍然没有运气enter image description here

这是我的示例数据库的图片 提前谢谢你!

【问题讨论】:

  • MySQL 使用反引号作为分隔标识符。
  • "但还是没有运气" -- 什么运气不好?在排序?还是您遇到语法错误?
  • 大多数 dbms 都有 ANSI/ISO SQL 标准的双引号,即"CHANGE"
  • 使用不带双引号的第一个查询(select * from data order by CAST('change' AS SIGNED) DESC;),使用 mysql server 5.7 在我的工作台 6.3 上成功运行

标签: mysql sql casting floating-point


【解决方案1】:

使用反引号

ORDER BY `CHANGE` DESC

每个 RDBMS 都有不同的处理保留字的方式。 MySQL 使用反引号:`

你得到的错误与强制转换无关。

【讨论】:

  • 反勾号有效!谢谢你。花了将近 3 个小时的单引号,重新排列语句,我所要做的就是反引号。再次感谢!
【解决方案2】:

正如用户 'sagi' 建议的那样,使用保留字“change”,不需要强制转换或单引号,而是在原始问题上使用反引号。对于 mac,它位于关键字数字 1 的左侧。谢谢大家!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    相关资源
    最近更新 更多