参考文章:http://www.bubuko.com/infodetail-3261995.html

1、通过网上查询资料,可总结出:

(1)如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了),直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序;

(2)如果存储姓名的字段采用的是 UTF8字符集,需要在排序的时候对字段进行转码;对应的代码是 order by convert(name using gbk) asc; 同样,查询的结果也是按照姓氏的升序排序;

我相信大多数人用的应该是用的UTF8字符集,所以这里就使用第二种方法

2、具体操作

使用TP中的一个类Expression(use think\db\Expression;)来实现,示例代码如下:

use think\db\Expression;//按店铺名称排序则让列表中的店铺按照店铺名称(shop_name)拼音首字母排序
$exp = new Expression('convert(shop_name using gbk) asc');$shop_list = $this->sM->where($where)->limit($start, $size)->field('...,shop_name,...')->orderRaw($exp)->select();

注意:当你的order排序中使用了SQL函数的时候,请使用orderRaw方法替代order

ThinkPHP5.1 按照汉字的拼音排序相关推荐

  1. Java汉字按照拼音排序

    最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator. ...

  2. java拼音搜索排序算法_Java汉字按照拼音排序

    最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的方法比较. @Test public void test_sort_pinyin() { Collator cmp = Collator. ...

  3. 表格排序 支持汉字按拼音排序,面向对象的使用方法

    周末无聊利用swapNode方法写了个排序算法,性能比较一般,超简单的冒泡排序,但是由于使用了swapNode,所以TR以及TD对象后绑定的属性不会丢失,同时解决了checkbox在swapNode后 ...

  4. mysql 字母分组_MySQL按照汉字的拼音排序、按照首字母分类

    项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需要按拼音字母从A到Z分类显示. 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用 ...

  5. mysql汉字的拼音排序

    按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...

  6. java 汉字按拼音排序_Java汉字按照拼音排序

    @Test public void testSortPinyin() { Collator cmp = Collator.getInstance(java.util.Locale.CHINA); St ...

  7. MySQL按照汉字的拼音排序(A-Z)

    按照汉字的拼音排序,用的比较多是在人名的排序中,按照姓氏的拼音字母,从A到Z排序: 如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字37 ...

  8. 中文汉字按拼音排序并按字母分类(uniapp indexedList索引列表格式匹配)

    最近做uni-app项目,遇到中文排序,使用indexedList组件布局渲染.自己也是查询了很多资料,https://www.cnblogs.com/wteng/p/5658972.html展现了一 ...

  9. android中文首字母排序,Android上汉字按拼音排序如何实现?

    具体的代码在 packages\providers\contactsprovider\src\com\android\providers\contacts\ContactL ocaleUtils.ja ...

最新文章

  1. ios -使用NSLayoutConstraint实现多个view等宽等高等间距
  2. java转义字符_Java入门 - 语言基础 - 13.Character类
  3. 不是计算机专业学python能找到工作吗-python学习难不难?非计算机专业也能学吗?...
  4. 【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结...
  5. 随笔-546 评论-829 文章-21 2015年第15本:天才在左,疯子在右
  6. python 实例化父类对象_在Python中从现有超类实例化子类
  7. 那些女程序员们的故事
  8. Basic64 编码解码
  9. Puppet 命令参数介绍(三)
  10. Android RecyclerView使用详解(一)
  11. 阿里双11大促秒杀活动下的缓存技术与高水位限流实现
  12. 我选择的是一种生活态度
  13. 【Coding】C++诡异问题之一
  14. CodeForces - 1517A Sum of 2050
  15. 委托应用及泛型委托和多播委托
  16. 转:飞思卡尔单片机RAM与flash相关问题
  17. linux设置ipsan_linux 配置IPSAN存储
  18. graphpad做单因素方差分析_GraphPad中国官网 - Prism 8 统计指南 - 单因素方差分析
  19. java对象为什么要实现序列化
  20. 易宝支付 CTO 陈斌:如何做一个好的 CTO

热门文章

  1. 一个长期潜伏在微软拼音输入法中的Bug
  2. m_map地图工具箱:contents.m
  3. #MySql MySql 计算今年有多少天周末(周六、日)
  4. linux php文件上传失败,linux不能上传文件
  5. [jzoj 3914]人品问题{树形DP}
  6. react项目中使用esri-loader加载天地图
  7. 一级建造师-公共课-笔记总结
  8. 人工智能-推荐系统-模块01:离线统计模块【使用SparkSQL(基于Scala语言/Python语言)进行离线统计分析:历史热门商品统计、近期热门商品统计、商品平均评分统计...】
  9. 机智云目前我用过最便捷的物联网快速开发方案
  10. 免费的企微运营利器-企客加(企客加功能简介、安装方法)