精华内容
下载资源
问答
  • SQL语句按照姓名首字母排序

    千次阅读 2019-01-20 14:40:43
      最近小咸儿做项目,根据业务需求,需要将查出来的人员姓名按照拼音首字母进行排序,小咸儿选择在SQL语句上对姓名字段进行排序,这样查出来的人员就已经是排好序的了。 UTF-8   SQL语句对中文姓名进行排序,...

    前言

      最近小咸儿做项目,根据业务需求,需要将查出来的人员姓名按照拼音首字母进行排序,小咸儿选择在SQL语句上对姓名字段进行排序,这样查出来的人员就已经是排好序的了。

    UTF-8

      SQL语句对中文姓名进行排序,如果你的默认校对集是utf8_general_ci,那就需要转码强制mysql按中文来排序了。

    Select * from table order by convert(name using gbk) asc
    

      经过测试后,执行查询结果正确。

    GBK

      如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,一般人名是常用汉字,一级汉字可以满足),可以直接使用。

    Select * from table order by name asc
    

      查询结果按照姓氏的升序排序。

    展开全文
  • php将名字按首字母进行排序,具体代码如下所示:public function getFirstChar($s){$s0 = mb_substr($s,0,3); //获取名字的姓$s = iconv('UTF-8','gb2312', $s0); //将UTF-8转换成GB2312编码//dump($s0);if (ord($s0...

    php将名字按首字母进行排序,具体代码如下所示:

    public function getFirstChar($s){

    $s0 = mb_substr($s,0,3); //获取名字的姓

    $s = iconv('UTF-8','gb2312', $s0); //将UTF-8转换成GB2312编码

    //dump($s0);

    if (ord($s0)>128) { //汉字开头,汉字没有以U、V开头的

    $asc=ord($s{0})*256+ord($s{1})-65536;

    if($asc>=-20319 and $asc<=-20284)return "A";

    if($asc>=-20283 and $asc<=-19776)return "B";

    if($asc>=-19775 and $asc<=-19219)return "C";

    if($asc>=-19218 and $asc<=-18711)return "D";

    if($asc>=-18710 and $asc<=-18527)return "E";

    if($asc>=-18526 and $asc<=-18240)return "F";

    if($asc>=-18239 and $asc<=-17760)return "G";

    if($asc>=-17759 and $asc<=-17248)return "H";

    if($asc>=-17247 and $asc<=-17418)return "I";

    if($asc>=-17417 and $asc<=-16475)return "J";

    if($asc>=-16474 and $asc<=-16213)return "K";

    if($asc>=-16212 and $asc<=-15641)return "L";

    if($asc>=-15640 and $asc<=-15166)return "M";

    if($asc>=-15165 and $asc<=-14923)return "N";

    if($asc>=-14922 and $asc<=-14915)return "O";

    if($asc>=-14914 and $asc<=-14631)return "P";

    if($asc>=-14630 and $asc<=-14150)return "Q";

    if($asc>=-14149 and $asc<=-14091)return "R";

    if($asc>=-14090 and $asc<=-13319)return "S";

    if($asc>=-13318 and $asc<=-12839)return "T";

    if($asc>=-12838 and $asc<=-12557)return "W";

    if($asc>=-12556 and $asc<=-11848)return "X";

    if($asc>=-11847 and $asc<=-11056)return "Y";

    if($asc>=-11055 and $asc<=-10247)return "Z";

    }else if(ord($s)>=48 and ord($s)<=57){ //数字开头

    switch(iconv_substr($s,0,1,'utf-8')){

    case 1:return "Y";

    case 2:return "E";

    case 3:return "S";

    case 4:return "S";

    case 5:return "W";

    case 6:return "L";

    case 7:return "Q";

    case 8:return "B";

    case 9:return "J";

    case 0:return "L";

    }

    }else if(ord($s)>=65 and ord($s)<=90){ //大写英文开头

    return substr($s,0,1);

    }else if(ord($s)>=97 and ord($s)<=122){ //小写英文开头

    return strtoupper(substr($s,0,1));

    }

    else

    {

    return iconv_substr($s0,0,1,'utf-8');

    //中英混合的词语,不适合上面的各种情况,因此直接提取首个字符即可

    }

    }

    public function addPeople()

    {

    $userName = array('张三','马大帅','李四','王五','小二','猫蛋','狗蛋','王花','三毛','小明','李刚','张飞');

    sort($userName);

    foreach($userName as $name){

    $char = $this->getFirstChar($name);

    $nameArray = array();

    if(count($charArray[$char])!=0){

    $nameArray = $charArray[$char];

    }

    array_push($nameArray,$name);

    $charArray[$char] = $nameArray;

    }

    ksort($charArray);

    $this->assign('_list',$charArray);

    }

    页面显示

    {$k}

    {$l}

    总结

    以上所述是小编给大家介绍的php实现姓名根据首字母排序的类与方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    展开全文
  • /***@Author:xyl*@Date: 2019/8/24 16:47*@Description: 名字首字母排序*/public static Map> sort(List list){Map> rtMap = new HashMap<>();Map> result=new LinkedHashMap();for (String s : list...

    /**

    *@Author:xyl

    *@Date: 2019/8/24 16:47

    *@Description: 名字首字母排序

    */

    public static Map> sort(List list){

    Map> rtMap = new HashMap<>();

    Map> result=new LinkedHashMap();

    for (String s : list) {

    char[] arr = s.toCharArray();

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();

    defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);

    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    if (arr[0] > 128) {

    try {

    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[0], defaultFormat);

    if (temp != null) {

    if (rtMap.containsKey(String.valueOf(temp[0].charAt(0)))) {

    rtMap.get(String.valueOf(temp[0].charAt(0))).add(s);

    } else {

    List li=new ArrayList<>();

    li.add(s);

    rtMap.put(String.valueOf(temp[0].charAt(0)), li);

    }

    }

    } catch (BadHanyuPinyinOutputFormatCombination e) {

    e.printStackTrace();

    }

    } else {

    if (rtMap.containsKey(String.valueOf(arr[0]))) {

    rtMap.get(String.valueOf(arr[0])).add(s);

    } else {

    List li=new ArrayList<>();

    li.add(s);

    rtMap.put(String.valueOf(arr[0]), li);

    }

    }

    result =rtMap.entrySet().stream()

    .sorted(Map.Entry.comparingByKey())

    .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue,

    (oldValue, newValue) -> oldValue, LinkedHashMap::new));

    }

    return result;

    }

    展开全文
  • 根据汉字首字母排序的方法

    千次阅读 2019-05-16 15:49:18
    mysql根据汉字首字母排序的方法 实现mysql中根据汉字首字母排序的sql语句: 代码示例: select areaname from area order by convert(areaname using gbk) collate gbk_chinese_ci asc 说明: areaname为列名 ...

    mysql根据汉字首字母排序的方法

    实现mysql中根据汉字首字母排序的sql语句:

     

    代码示例:

    select areaname from area order by convert(areaname using gbk) collate gbk_chinese_ci asc

    说明:

    areaname为列名 

    area为表名

    mysql 中文字段排序( 按拼音首字母排序) 的查询语句

    1,如果数据表tbl的某字段name的字符编码是latin1_swedish_ci

     

    代码示例:

    select * from `tbl` order by birary(name) asc ;

    2,如果数据表tbl的某字段name的字符编码是utf8_general_ci

     

    代码示例:

    select name from `tbl` where 1 order by convert( name using gbk ) collate gbk_chinese_ci asc

    $orderby="convert(`group` using gbk) collate gbk_chinese_ci,displayorder,navid"

    phpmysql采用utf-8编码时实现按照文本字段的首字母的拼音顺序进行排序

    最近做了个投票系统,要把那些候选人按照首字母排序

    如果是gbk编码的,可以直接对字段进行order by ,但是纯utf-8环境下不行。

     

    代码示例:

    gbk编码:

    select * from candidate where del_flag=$state order by name

    utf-8编码:

    select * from candidate where del_flag=$state order by convert(candidate_name using gbk)

     

    另外的方法:字典类方法,也是提高效率的方法,为了达到更快更效率的查询,需要另外再建立一个索引列,并在索引列中插入标签字第一个字母或者是拼音。

    定义拼音字典,封装类

    oracle根据汉字首字母排序的方法

    在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值

    SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序

    SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第二顺序)排序

    SCHINESE_PINYIN_M 按照拼音排序,系统的默认排序方式为拼音排序

     

    举例如下:

    表名为 dept ,其中name字段是中文,下面分别实现按照单位名称的笔划、部首和拼音排序。

    //按照笔划排序

    select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_STROKE_M');

     //按照部首排序

     select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_RADICAL_M');

    //按照拼音排序,此为系统的默认排序方式

    select * from dept order by nlssort(name,'NLS_SORT=SCHINESE_PINYIN_M');

     

    sqlserver

    select * from table order by name collate Chinese_PRC_CS_AS_KS_WS

    展开全文
  • 在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序"--把tableName和colName换成自己的就ok了--按拼音ALTER TABLE tableNameALTER COLUMN colName nvarchar(100) COLLATE ...
  • 数据库SQL 某字段按首字母排序

    千次阅读 2019-10-23 10:47:38
    1、mysql    1)按照汉字的拼音排序  ...
  • 1、mysql    1)按照汉字的拼音排序   ...如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序...
  • Sqlserver 按汉字首字母排序(sql语句)

    千次阅读 2019-07-25 23:33:27
    在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序" --把tableName和colName换成自己的就ok了 --按拼音 ALTER TABLE tableName ALTER COLUMN colName nvarchar(100) ...
  • sql 汉字按照首字母排序

    千次阅读 2018-04-12 16:35:25
    1、mysql 1)按照汉字的拼音排序 如果存储汉字的字段编码使用的是GBK字符集,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,...
  •  表字段的排序规则是COLLATE Chinese_PRC_CI_AS ,也没有问题,后来找到了一个博客上写;在SQL、JS等里面,有99%的汉字按首字母自动排序,不过有些字没不能完成,像“重庆”的“重”,把它按照“Zhong”来处理,...
  • sql按用户名首字母排序

    千次阅读 2012-11-20 13:38:34
    order by ascii(lower(userLoginName)) HQL:qc.appenOrderBy("ascii(lower(obj.userLoginName))");
  • mysql 中将汉字(中文)按照拼音首字母排序 因为数据库中可以设定表的编码格式,不同编码格式下,中文的排序有区别,下面分别介绍常用编码下的排序方法. 1.如果数据表的某字段的字符编码是 utf8_general_ci,排序写法: ...
  • Android快速获取通信录列表、首字母、并排序 关键点 只使用一个Cursor 同时获取 手机号、首字母、并排序 (200多联系人大概在20ms左右) 首字母的获取根据不同版本获取方式不同,在Android5.0以上使用 phonebook_...
  • 1、按首字母排序  在oracle9i中新增了按照拼音、部首、笔画排序功能。设置NLS_SORT值  SCHINESE_RADICAL_M 按照部首(第一顺序)、笔划(第二顺序)排序  SCHINESE_STROKE_M 按照笔划(第一顺序)、部首(第...
  • 姓名拼音首字母缩写Technology is inundated with acronyms, and cybersecurity egregiously so. Here’s a quick cheatsheet you help you through your next certification, job interview, or day job. I’ve ...
  • //如果两个人年龄相同,再使用姓名的第一个字比较 if(result == 0){ result = o1.getName().charAt(0) - o2.getName().charAt(0); } return result; } }); System.out.println(list); } } 运行结果: ...
  • IOS项目中会用到对通讯录的联系人或是会员按姓名为关键字排序,因为NSArray并不直接支持对汉字的排序,这就要通过将汉字转换成拼音完成按A~Z的排序,这看起来是个头疼的问题,因为牵扯到汉字转为拼音,kmyhy给出一个...
  • C语言:姓名排序

    2021-12-03 22:27:58
    姓名进行排序,实际上就是按字符串的大小进行排序。 字符串比较大小时,实际上是根据两字符对比时出现的第一对不相等的字符的大小来决定它们所在字符串的大小。 而字符串比较大小是不能直接使用关系运算符的。...
  • 在sql server中可以直接通过SQL语句实现按汉字首字母排序,比如我们经常用到的"按姓名首字母排序"--把tableName和colName换成自己的就ok了--按拼音ALTER TABLE tableNameALTER COLUMN colName nvarchar(100) COLLATE ...
  • 那么,在Excel中关于姓名排序方式都有哪些呢?这里,小汪老师就来给各位讲一下在Excel中按姓名排序的几种方式。演示说明这里我就以一份简单的成绩表来作为演示案例。按姓氏笔画进行排序操作方法:先选中任意单元格...
  • ORACLE中文排序

    2021-05-02 04:34:51
    设置NLS_SORT值SCHINESE_RADICAL_M 按照部(第一顺序)、笔划(第二顺序)排序SCHINESE_STROKE_M 按照笔划(第一顺序)、部(第二顺序)排序SCHINESE_PINYIN_M 按照拼音排序修改ORACLE字段的默认排序方式:按拼音(默认)...
  • 每一个元素都会关联一个double类型的分数,redis正是通过分数来为集合中的成员进行从小到大的排序。 有序集合中的成员是唯一的,但是分数可以重复。 集合是通过哈希表实现的,集合中的最大元素是2的32次方减1。Zset...
  • PostgreSQL的中文拼音排序(转载)

    千次阅读 2018-12-01 16:31:19
    比较理想的解决办法是对这类基础数据录入时就指定拼音规则,或者数据库里存一份数据的拼音字典来关联使用。 其他: 使用zh_cn存储时测试字段大小,未测试取值速度 postgres=# insert into tbl_kenyon ...
  •  * 按照姓名排序的策略类,实现Strategy策略接口  */ public class StrategyByName implements Strategy, Comparator<Person>{    private boolean AscFlag;//true--表示升序;false---表示降序    ...
  • 【iOS】汉字数组,按首字母排序

    千次阅读 2015-11-03 11:02:46
    IOS项目中会用到对通讯录的联系人或是会员按姓名为关键字排序,因为NSArray并不直接支持对汉字的排序,这就要通过将汉字转换成拼音完成按A~Z的排序,这看起来是个头疼的问题,因为牵扯到汉字转为拼音,kmyhy给出一个...
  • 如果存储姓名的字段采用的是GBK字符集,直接在查询语句后面 添加 order by name asc,如果存储字段采用的是utf8字符集,需要在排序的时候对字段进行转码,代码是 order by convert(name using gbk) asc。 Oracle:...
  • 首字母模糊查询

    千次阅读 热门讨论 2015-09-27 16:43:07
    在做人事系统的时候有一个需求,要求能在表格上方的搜索框中实现输入字母能查出以该字母为首字母的中文。刚开始觉得这个需求不是特别重要,后来自己总结整理的时候发现这种用户体验的需求是高效办公系统必须的。其实...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 6,753
精华内容 2,701
关键字:

姓名首字母排序规则