PHP首字母搜索功能,附上漢語拼音字母ASCII范圍

本文主題:漢語拼音字母ASCII范圍,實(shí)現(xiàn)首字母搜索功能

背景:風(fēng)風(fēng)火火,兩天將整個名片系統(tǒng)所有接口寫完后
公司更改了需求,要求名片搜索不但有搜索姓名手機(jī)號職位功能還要加上姓名首字母搜索功能
思來想去,這個難度有點(diǎn)大啊,就想到能不能用ASCII碼來實(shí)現(xiàn),發(fā)現(xiàn)PHP中有個ord()函數(shù)可以返回ASCII碼值,轉(zhuǎn)念一想,要是mysql中也有ord()函數(shù)這樣的功能函數(shù)的話,那就很nice了,試了一下還真有,連名字都一樣,真的很nice。廢話不多說,下面開始我的分享:

  • 數(shù)據(jù)庫代碼

所用到表:user_cards(用戶表),initial_search(字母范圍搜索表)

CREATE TABLE IF NOT EXISTS `initial_search` (
  `inputLe` char(1) NOT NULL COMMENT '需轉(zhuǎn)碼的字母',
  `transcodeBegin` int(11) NOT NULL COMMENT '轉(zhuǎn)碼范圍開始',
  `transcodeEnd` int(11) NOT NULL COMMENT '轉(zhuǎn)碼范圍結(jié)束'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 搜索代碼:
SELECT uc. * , inits. *
                FROM user_cards uc, initial_search inits
                WHERE CONV( HEX( LEFT( CONVERT( userName
                USING gbk ) , 1 ) ) , 16, 10 )
                BETWEEN inits.transcodeBegin
                AND inits.transcodeEnd
                AND inputLe = '$key' "
  • 下面來看具體原理:利用ASCII碼值和16進(jìn)制與10進(jìn)制的轉(zhuǎn)換實(shí)現(xiàn)
  • 一下即是漢語拼音字母ASCII范圍也是搜索表的值
INSERT INTO `initial_search` (`inputLe`, `transcodeBegin`, `transcodeEnd`) VALUES
('A', 45217, 45252),
('B', 45253, 45760),
('C', 45761, 46317),
('D', 46318, 46825),
('E', 46826, 47009),
('F', 47010, 47296),
('G', 47297, 47613),
('H', 47614, 48118),
('J', 48119, 49061),
('K', 49062, 49323),
('L', 49324, 49895),
('M', 49896, 50370),
('N', 50371, 50613),
('O', 50614, 50621),
('P', 50622, 50905),
('Q', 50906, 51386),
('R', 51387, 51445),
('S', 51446, 52217),
('T', 52218, 52697),
('W', 52698, 52979),
('X', 52980, 53640),
('Y', 53689, 54480),
('Z', 54481, 55289);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • PHP常用函數(shù)大全 usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對數(shù)據(jù)進(jìn)行解...
    上街買菜丶迷倒老太閱讀 1,510評論 0 20
  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,692評論 0 4
  • php usleep() 函數(shù)延遲代碼執(zhí)行若干微秒。 unpack() 函數(shù)從二進(jìn)制字符串對數(shù)據(jù)進(jìn)行解包。 uni...
    思夢PHP閱讀 2,146評論 1 24
  • 我曾與這個世界交談 關(guān)于忙碌的人群和逝去的生命 而它用沉入泥土的落葉回答我 請認(rèn)識自己 我曾與這個世界交談 關(guān)于復(fù)...
    力挺蘑叔閱讀 300評論 0 2
  • 功能需求: 1、管理集團(tuán)公司的所有開發(fā)者,并進(jìn)行實(shí)名認(rèn)證 2、開發(fā)者社區(qū)能夠快速發(fā)布項(xiàng)目主頁 能夠插入圖片、視頻類...
    李哲_332b閱讀 302評論 0 0

友情鏈接更多精彩內(nèi)容