首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Thinkphp中MySQL按照中文拼音排序问题的处理

    背景 由于客户需求,需要按照汉字的首字拼音排序,项目开发中免不了数据的排序问题,排序中又免不了对中文的处理。...今天分享一下如何在mysql中对中文进行排序,介绍下thinkphp连贯操作的order底层原理 例:M(‘Project’)->order(‘name’)->select(); 这段代码最后转换成原生...发现还不是想要的效果,这也不能怪mysql,毕竟中文博大精深,而我们的目标实际是中文的拼音排序,默认情况下mysql是不认识的(虽然我的数据库所有编码都已经设置为了utf-8)。...用‘强大’的百度查了下,mysql要想实现中文拼音排序有两种常用的办法: 第一种 不修改表结构,只修改查询语句: 明确的告诉mysql我这个字段要以gbk编码处理(用gb2312也可以的) 如果数据表tbl...效果和第一种方法一样 还有一种我没有验证的方法,网友提供的,大家可以参考下: 如果你使用源码编译MySQL,可以编译MySQL时使用 –with–charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了

    3.4K10

    Golang 中文转拼音

    翻遍整个 GitHub , Golang 中文转拼音类库, 怎么就这么难找呢? 于是我造了一个轮子: 中文转拼音类库. 目前来说应该是最好用的了....`, "-").Unicode() fmt.Println(s) // 转换简体中文和繁体中文, 转换为带 斜杆/ 分隔的拼音字符串 // 不显示声调 // wo/he/shi/neng/bao...`).Unicode() fmt.Println(s) // 转换简体中文和繁体中文, 转换为带 空格 分隔的拼音字符串 // 不显示声调 // wo, he shi neng bao fu?..."-").Unicode() fmt.Println(s) // 转换简体中文和繁体中文, 转换为带 斜杆/ 分隔的人名拼音字符串 // 不显示声调 // mo/qi/wo/xi/huan/chi...---- // 转换简体中文和繁体中文, 输出为带 连字符- 分隔的拼音字符串首字符 // m-q-w-x-h-c-s-n s = dict.Abbr(`万俟沃喜欢吃酸奶`, "-") fmt.Println

    1.7K20

    MySQL 中文转拼音函数

    需求是将字符串中的汉字转为拼音。创建一个汉字转拼音的函数,在其中判断每个字符是否为中文,如果是则查询拼音表取得对应的拼音,否则原样返回。...网上的大部分 MySQL 转拼音函数都是通过创建一个拼音对照表,然后在自定义函数中查询该表实现的。以下对这种实现做了修改,具有以下特点: 不需要拼音表。 与数据库字符集无关。...不考虑多音字拼音上下文语义的正确性。 通过嵌套使用 MySQL 的 elt、interval 函数确定一个汉字对应的唯一拼音。        ...convert(unhex(substring(name, lp, 4)) using gbk));             else                           -- 汉字取拼音...        end if;     end while;     return mypy; end; // delimiter ;         测试 mysql> set @s:='123 中文

    3.8K10

    0650-6.2.0-通过UDF实现Hive&Impala的中文拼音排序

    由上面两张图可以看出,在Hive和Impala中排序都失败了,没有按照期望中的中文对应的拼音进行排序。...2 问题解决 1.想要实现对中文字段的排序,需要将中文字段转换成拼音,然后在Hive、Impala中对拼音进行排序即可。...,则将中文转为汉语拼音 hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat...从Hive和Impala的执行结果可以看出,是按照拼音的升序成功进行了排序。...3 问题总结 无论是Hive还是Impala都不支持中文按照拼音的排序,因为它们支持的主要是标准的ASCII字符集并不包含中文,如果要对中文按照拼音排序,需要通过UDF将中文转换成拼音后实现,而中文转换成拼音的函数

    2.3K20

    Oracle中根据中文获取拼音首字母

    前言 在软件中方便用户查找信息时,都会用到输拼音首字母的简写快速过滤,所以一般我们在Oracle的表中会加上一列助记符列,今天我们就看看将中文怎么转换为拼音首字母。...实现方式 通过oracle的NLSSORT函数对汉字按照拼音排序。 然后根据汉字的区间返回对应的首字母。...函数代码 /* 获取拼音简码函数 */ CREATE OR REPLACE FUNCTION GET_PYJM (P_NAME IN VARCHAR2) RETURN VARCHAR2 AS...我们直接还是在要导入的数据库中直接先查询出来,然后调用GET_PYJM的函数,上图中nvl(GET_PYJM("SupName“),"SupName")这里用法,因为SupName是我们的中文名称列,如果本身名称是英文那这个获取的数据即为空值了

    5.7K50

    Python 识别中文生成带声调的拼音

    本文记录使用 Python pypinyin 库获取中文声调拼音的方法。 pypinyin 将汉字转为拼音。可以用于汉字注音、排序、检索 。 特性 根据词组智能匹配最正确的拼音。 支持多音字。...简单的繁体支持,注音支持,威妥玛拼音支持。 支持多种不同拼音/注音风格。...安装 1 pip install pypinyin 使用 引入库 12 import pypinyinfrom pypinyin import pinyin 基础用法 向 pinyin 方法输入中文字符...如: 中国 -> ``zho1ng guo2``TONE2 = 2#: 声调风格3,即拼音声调在各个拼音之后,用数字 [1-4] 进行表示。...如: 中国 -> ``zhong1 guo2``TONE3 = 8#: 声母风格,只返回各个拼音的声母部分(注:有的拼音没有声母,详见 `#27`_)。

    2.1K30
    领券