php mysql 拼音首字母,Mysql应用MySQL查询汉字的拼音首字母实例教程
《Mysql應(yīng)用MySQL查詢漢字的拼音首字母實(shí)例教程》要點(diǎn):
本文介紹了Mysql應(yīng)用MySQL查詢漢字的拼音首字母實(shí)例教程,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
導(dǎo)讀:最好的方法還是用 PHP 來取拼音首字母,在 MySQL 里新建一個(gè)字段來存放php 里查詢漢字的拼音首字母已經(jīng)有很多參考的代碼了.現(xiàn)在給出...
MYSQL數(shù)據(jù)庫(kù)最好的方法還是用 PHP 來取拼音首字母,在 MySQL 里新建一個(gè)字段來存放
php 里查詢漢字的拼音首字母已經(jīng)有很多參考的代碼了.
現(xiàn)在給出在mysql 里實(shí)現(xiàn)的, 測(cè)試環(huán)境是mysql-5.0.27-win32
MYSQL數(shù)據(jù)庫(kù)1、建立拼音首字母資料表
MYSQL數(shù)據(jù)庫(kù)DROP TABLE IF EXISTS `pyk`;
CREATE TABLE `pyk` (
`PY` varchar(1) ,
`HZ1` int ,
`HZ2` int
) ;
MYSQL數(shù)據(jù)庫(kù)INSERT INTO `pyk` (`PY`,`HZ1`,`HZ2`) VALUES
('A',-20319,-20284),
('B',-20283,-19776),
('C',-19775,-19219),
('D',-19218,-18711),
('E',-18710,-18527),
('F',-18526,-18240),
('G',-18239,-17923),
('H',-17922,-17418),
('J',-17417,-16475),
('K',-16474,-16213),
('L',-16212,-15641),
('M',-15640,-15166),
('N',-15165,-14923),
('O',-14922,-14915),
('P',-14914,-14631),
('Q',-14630,-14150),
('R',-14149,-14091),
('S',-14090,-13319),
('T',-13318,-12839),
('W',-12838,-12557),
('X',-12556,-11848),
('Y',-11847,-11056),
('Z',-11055,-10247);
MYSQL數(shù)據(jù)庫(kù)2、建立mysql 函數(shù)
MYSQL數(shù)據(jù)庫(kù)DROP FUNCTION IF EXISTS hzcode;
MYSQL數(shù)據(jù)庫(kù)delimiter //
MYSQL數(shù)據(jù)庫(kù)CREATE FUNCTION hzcode (s CHAR(255)) RETURNS char
BEGIN
DECLARE hz_code int;
DECLARE hz_py char;
SET hz_code = ord(substring(s,1,1))*256+ord(substring(s,2,1))-65536 ;
select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk
.hz2;
RETURN hz_py;
END
//
MYSQL數(shù)據(jù)庫(kù)delimiter ;
數(shù) 據(jù)庫(kù)類型如果是GBK的時(shí)候,這個(gè)函數(shù)好像有點(diǎn)小問題,稍微改動(dòng)了下,貌似可以在GBK中使用了
MYSQL數(shù)據(jù)庫(kù)delimiter $$
DROP FUNCTION IF EXISTS `hzcode`$$
CREATE FUNCTION `hzcode` (s CHAR(255)) RETURNS char
BEGIN
DECLARE hz_code int;
DECLARE hz_py char;
declare str varchar(400);
SET hz_code = ord(substring(s,1,1))-65536 ;
select py into hz_py from pyk where hz_code>=pyk.hz1 and hz_code<=pyk.hz2;
RETURN hz_py;
MYSQL數(shù)據(jù)庫(kù)END$$
delimiter $$
MYSQL數(shù)據(jù)庫(kù)3、測(cè)試
mysql> select hzcode('南海龍王');
+--------------------+
| hzcode('南海龍王') |
+--------------------+
| N |
+--------------------+
1 row in set (0.00 sec)
MYSQL數(shù)據(jù)庫(kù)4、建立個(gè)測(cè)試表
MYSQL數(shù)據(jù)庫(kù)DROP TABLE IF EXISTS `f1`;
create table f1 (
name varchar(30),
pykey varchar(1)
);
MYSQL數(shù)據(jù)庫(kù)insert into f1(name) values
('張三'),
('李四'),
('王五'),
('趙六'),
('錢七');
MYSQL數(shù)據(jù)庫(kù)5、測(cè)試
MYSQL數(shù)據(jù)庫(kù)mysql> select * from f1;
+------+-------+
| name | pykey |
+------+-------+
| 張三 | NULL |
| 李四 | NULL |
| 王五 | NULL |
| 趙六 | NULL |
| 錢七 | NULL |
+------+-------+
5 rows in set (0.00 sec)
MYSQL數(shù)據(jù)庫(kù)mysql> update f1 set pykey = hzcode(name);
Query OK, 5 rows affected (0.05 sec)
Rows matched: 5 Changed: 5 Warnings: 0
MYSQL數(shù)據(jù)庫(kù)mysql> select * from f1;
+------+-------+
| name | pykey |
+------+-------+
| 張三 | Z |
| 李四 | L |
| 王五 | W |
| 趙六 | Z |
| 錢七 | Q |
+------+-------+
5 rows in set (0.00 sec)
MYSQL數(shù)據(jù)庫(kù)這樣就很方便地在MYSQL里查詢漢字的首字母了. 類似地也可以直接在MYSQL得到漢字拼音. 不過需要拼音表,函數(shù)寫法也不一樣.
總結(jié)
以上是生活随笔為你收集整理的php mysql 拼音首字母,Mysql应用MySQL查询汉字的拼音首字母实例教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python判断是否为完全数_Pytho
- 下一篇: db2数据库日期减一天_DB2 数据库中