首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果mysql中包含数字和文本,如何按字段排序

问如果mysql中包含数字和文本,如何按字段排序
EN

Stack Overflow用户
提问于 2014-11-03 06:06:29
回答 2查看 1K关注 0票数 1

我有地址的数据,我想把地址字段订购到asc和desc order。

您可以在表中看到有两个字段id,address

如果我订购地址字段到desc.It,则必须按以下顺序排列

(1)5621埃默生CT

(2)5600爱默生法院

(3)5393 Conestoga博士。

但你可以从图像中看到。它没有正常工作。地址字段为varchar(255)。谁能告诉我,要解决这个问题,我应该做些什么呢?任何帮助都将不胜感激。

​

​

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-03 06:17:38

代码语言:javascript
复制
SELECT * FROM `address` ORDER BY cast(`address` AS SIGNED) ASC

在上面的脚本中,将address列种姓为int。因此,如果您的列具有类似的值,则表示1234 street。Mysql将其解析为字符,因此我们强制mysql使用数据类型转换函数cast将其解析为int,数据类型为int。所以现在mysql把它看作是1234而不是1234 street。

但是,如果address列具有类似于此的值,则mysql现在将其解释为0,以标识该值是以非数字字符启动的。因此,如果以数字开头,它是有效的,但对其他人则不起作用。

票数 3
EN

Stack Overflow用户

发布于 2014-11-03 06:27:35

因为这个"address“是一个字符串(varchar字段),所以它得到了词汇上的排序。所以,你也许可以按

代码语言:javascript
复制
SELECT `address` FROM 'table` ORDER BY convert(`address`, decimal) DESC;

这将解决问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26708689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档