拼音字母搜索
package com.huikemgmt.common; /** * 字符工具类 * * @author wangxl * @date 2018-05-17 */ public class StringUtil { /** * 输入 "A " "F" ,返回连续的字母字符串 " 'A', 'B', 'C', 'D', 'E', 'F' " * * @param begin * @param end * @return */ public static String getContinousUpperCaseLetter(String begin ,String end){ //单元测试必须是 int beginAscii = begin.charAt(0); int endAscii = end.charAt(0); StringBuilder sb = new StringBuilder(); for (int i = 0; i < (endAscii - beginAscii + 1); i++) { Character a = (char)(beginAscii+i) ; if (i == endAscii - beginAscii) { String s = "'" + a.toString() + "'"; sb.append(s); break; } String s = "'" + a.toString() + "', "; sb.append(s); } return sb.toString();//返回值为 'A', 'B', 'C', 'D', 'E', 'F' } public static void main(String[] args) { String s = StringUtil.getContinousUpperCaseLetter("A", "F"); System.out.println(s); } }
SELECT
CustomerId customerId,
CustomerName customerName
FROM
customer_all_info
WHERE
getFirstPinYinChar (CustomerName) IN ('A', 'B')
/*
存储函数的说明: 输入中文字符串 返回 中文第一个字符的拼音 (输入 白宫 返回 B) SELECT getFirstPinYinChar('白宫');
wangxl
Date: 2018-04-26 17:30:00
*/
DROP FUNCTION IF EXISTS `getFirstPinYinChar`;
DELIMITER ;;
CREATE FUNCTION `getFirstPinYinChar`(PARAM VARCHAR(255)) RETURNS varchar(2) CHARSET utf8
BEGIN
DECLARE V_RETURN VARCHAR(255);
DECLARE V_FIRST_CHAR VARCHAR(2);
SET V_FIRST_CHAR = UPPER(LEFT(PARAM,1));
SET V_RETURN = V_FIRST_CHAR;
IF LENGTH( V_FIRST_CHAR) <> CHARACTER_LENGTH( V_FIRST_CHAR ) THEN
SET V_RETURN = ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(PARAM USING gbk),1)),16,10),
0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,
0xC8F6,0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');
END IF;
RETURN V_RETURN;
END
;;
DELIMITER ;