目录
一、思路
做项目的时候涉及到了首拼查询,思路如下:
1.将数据库中搜索名称字段转化为首拼字母连接
2.数据库查询时根据名称常规判断用or连接做第二次的首拼判断
二、工具
用到的数据库工具是MySQL workbench
三、步骤
涉及到的前两个函数可以放心大胆的直接复制粘贴,主要从函数名开始到end结束,是实现的重点,函数名可以自己替换,当然也要替换掉第二个函数中用到的第一个函数名(如果你想改个fashion的名字的话)
具体做法如下:
第一步
1.先建立转化第一个字母的数据库函数firstletter
具体用到的left(取左边第一个字符)等函数网上有解释,想了解的可以自行搜索,这儿只说实现
注:拼音首字母生成过程:
1) 先将编码转换为GBK编码,取汉字的首个单词转为十六进制表示
2) 将首字符的十六进制转化为十进制表示为值X
3) 使用interval返回第一个大于 被比较元素X 的位置index,该函数的比较列表为英文字母的十六进制编码值(汉字的编码是按照英文字母排序范围的)
4) 使用ELT函数将上一步获得的位置index,按照英文字母字符的排序位置输出汉字首字母
函数使用说明:
函数INTERVAL(N,N1,N2,N3,..........): INTERVAL()函数进行比较列表(N1,N2,N3等等)中的N值。该函数如果N<N1返回0,如果N<N2返回1,如果N<N3返回2 等等。如果N为NULL,它将返回-1。列表值必须是N1<N2<N3的形式才能正常工作。
函数ELT(N,str1,str2,str3,...) :如果N= 1ÿ