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