当前位置: 首页 > article >正文

thinkphp+mysql+cast解决text类型字段的文本型数字排序错误的方法 - 数据库文本字段排序ASC、DESC的失效问题

TP中使用cast + order

$lists = AmdCommonTable::where(..............)

    ->field('*,CAST(w6 AS UNSIGNED) as sort')

    ->order('sort', 'asc')

    ->select()

    ->toArray();

先转换为数字,再order by

效果对比

(1/2) 不ok - 直接order by 某字段 asc - 只能按照文本排序

其中w6字段类型:`w6` TEXT 

SELECT id,w6 FROM `xx` ORDER BY `w6` ASC

(2/2)  ok - 使用cast方法转换“文本”字段为"数字",再order by排序

SELECT *,CAST(w6 AS UNSIGNED) as sort FROM `xx` ORDER BY `sort` ASC

感谢

MySQL把字符串转化为数字的三种方式[通俗易懂]-腾讯云开发者社区-腾讯云首先,我想到的是类似于between and,我以为也是比较的首字母,不过后面我发现并不是的。https://cloud.tencent.com/developer/article/2091841Thinkphp5中使用mysql的concat函数_tp5 concat-CSDN博客文章浏览阅读1.9k次。需要注意你的TP版本 如果是5.0.18+ 需要使用新的写法这里我用的5.0.21版 也用它作为演示1.update在原有字符的基础上添加新字符db('a')->where('id', 1)->update(['name' => Db::raw('concat(name,"在原来的字符上追加新的字符")')])2...._tp5 concat https://blog.csdn.net/livesmo/article/details/97963261


http://www.kler.cn/a/580604.html

相关文章:

  • leetcode:单词距离
  • 美畅物联丨P2P系列之STUN服务器:助力网络穿透
  • 使用服务器搭建无门槛ChatGPT WEB应用LobeChat
  • 做到哪一步才算精通SQL
  • Linux网络之数据链路层协议
  • MySQL自动化配置工具开发
  • 图论的基础知识:平凡图、简单图、连通图、平面图、完全图、对偶图、同构图
  • 【Bert系列模型】
  • Tomcat与Jetty的选择
  • git submodule管理的仓库怎么删除子仓库
  • js 实现图片缩放插件,支持图片上一张、下一张切换
  • 【漫话机器学习系列】124.感知机(Perceptron)
  • [GHCTF 2025]SQL??? 【sqlite注入】
  • 企业招聘能力提升之道:突破困境,精准纳才
  • K8S学习之基础二十:k8s通过svc+ep代理服务
  • Axure常用变量及使用方法详解
  • MySQL中 IN 到底走不走索引?
  • GStreamer —— 2.9、Windows下Qt加载GStreamer库后运行 - “教程9:媒体信息收集“(附:完整源码)
  • 年末网络安全检查的清单
  • 力扣hot100二刷——哈希、双指针、滑动窗口