亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

深入mysql創(chuàng)建自定義函數(shù)與存儲過程的詳解

 更新時間:2013年06月10日 09:36:22   作者:  
本篇文章是對mysql創(chuàng)建自定義函數(shù)與存儲過程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

一 創(chuàng)建自定義函數(shù)
在使用mysql的過程中,mysql自帶的函數(shù)可能不能完成我們的業(yè)務(wù)需求,這時就需要自定義函數(shù),例如筆者在開發(fā)過程中遇到下面這個問題:
mysql表結(jié)構(gòu)如下

復(fù)制代碼 代碼如下:

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `pic` varchar(50) NOT NULL,
  `hashcode` varchar(16) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO `test` VALUES ('1', '2012120910403250c3fa209bf48.jpg', 'bf8f83818080c0f1');
INSERT INTO `test` VALUES ('2', '2012120620430750c092db26557.JPG', 'ff9880f0f680ceff');
INSERT INTO `test` VALUES ('3', '2012120619582550c08861eb062.jpg', '7f7f004f7f7f7c7f');
INSERT INTO `test` VALUES ('4', '2012112911072650b6d16e7f21f.jpg', '7f7f004f7f7f007f');


其中pic字段為圖片名稱,hashcode是圖片的感知哈希編碼(16進(jìn)制編碼字符串,長度固定16位),用戶輸入一個hashcode,怎么從數(shù)據(jù)庫中找出滿足字符串對應(yīng)位置的字符不同的個數(shù)小于5的記錄呢?就像“11001”和“11101”對應(yīng)位置不同字符不同的個數(shù)為1,比如 用戶輸入"7f7f004f7f7f00af",那么第三條和第四條記錄是滿足的,怎么實(shí)現(xiàn)呢?如果單純的依靠mysql自帶的函數(shù)很難完成,這時就需要建立自定義函數(shù)解決。這個問題的解決在此非常感謝csdn的acmain_chm,acmain_chm以及oschina的@梁小剛,還有@淘寶丁奇

建立自定義函數(shù)的過程如下:
1.進(jìn)入mysql命令行
mysql>
2.用delimiter命令來把語句定界符從 ;變?yōu)?/。這樣就允許在程序體用;定界符傳遞到服務(wù)器,而不是被mysql自己來解釋。
mysql> delimiter //
3.創(chuàng)建自定義函數(shù)

復(fù)制代碼 代碼如下:

mysql>CREATE FUNCTION hashDiff( s1 varchar(16), s2 varchar(16))
->RETURNS INT
->BEGIN
->DECLARE diff, x INT;
->SET diff =0;
->SET x = 0;
->WHILE (x  < 16 )  DO
->SET x = x+1;
->if SUBSTRING(s1, x,1)<>SUBSTRING(s2, x,1) then
->set diff=diff+ 1;
->end if;
->END WHILE;
->RETURN diff;
->END
->//
mysql>select * from test t where  hashDiff(t.hashcode,'ff9880f0f680ceff')  < 5;

二 創(chuàng)建存儲過程
1.進(jìn)入mysql命令行
mysql>
2.用delimiter命令來把語句定界符從 ;變?yōu)?/。這樣就允許在程序體用;定界符傳遞到服務(wù)器,而不是被mysql自己來解釋。
mysql> delimiter //
3.創(chuàng)建存儲過程
復(fù)制代碼 代碼如下:

mysql> delimiter //
mysql> CREATE PROCEDURE simpleproc (OUT param1 INT)
    -> BEGIN
    ->   SELECT COUNT(*) INTO param1 FROM t;
    -> END
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
mysql> CALL simpleproc(@a);
Query OK, 0 rows affected (0.00 sec)


mysql> SELECT @a;
+------+
| @a   |
+------+
| 3    |
+------+
1 row in set (0.00 sec)


相關(guān)文章

  • MySQL同步數(shù)據(jù)Replication的實(shí)現(xiàn)步驟

    MySQL同步數(shù)據(jù)Replication的實(shí)現(xiàn)步驟

    本文主要介紹了MySQL同步數(shù)據(jù)Replication的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • MySQL中對表連接查詢的簡單優(yōu)化教程

    MySQL中對表連接查詢的簡單優(yōu)化教程

    這篇文章主要介紹了MySQL中對表連接查詢的簡單優(yōu)化教程,表連接查詢是MySQL最常用到的基本操作之一,因而其的優(yōu)化也非常值得注意,需要的朋友可以參考下
    2015-12-12
  • MySQL中有哪些情況下數(shù)據(jù)庫索引會失效詳析

    MySQL中有哪些情況下數(shù)據(jù)庫索引會失效詳析

    這篇文章主要給大家介紹了關(guān)于MySQL中有哪些情況下數(shù)據(jù)庫索引會失效的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • Windows下MySQL安裝配置方法圖文教程

    Windows下MySQL安裝配置方法圖文教程

    這篇文章主要為大家分享了Windows下MySQL安裝配置方法圖文教程,感興趣的朋友可以參考一下
    2016-06-06
  • MySQL安裝時一直卡在starting?server的問題及解決方法

    MySQL安裝時一直卡在starting?server的問題及解決方法

    這篇文章主要介紹了MySQL安裝時一直卡在starting?server的問題及解決方法,出現(xiàn)這種情況大概有兩個原因,文中對每種原因給大家詳細(xì)介紹,需要的朋友可以參考下
    2022-06-06
  • 解析mysql與Oracle update的區(qū)別

    解析mysql與Oracle update的區(qū)別

    本篇文章是對mysql與Oracle update的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-07-07
  • ORM模型框架操作mysql數(shù)據(jù)庫的方法

    ORM模型框架操作mysql數(shù)據(jù)庫的方法

    ORM 全稱是(Object Relational Mapping)表示對象關(guān)系映射; 通俗理解可以理解為編程語言的虛擬數(shù)據(jù)庫;這篇文章主要介紹了ORM模型框架操作mysql數(shù)據(jù)庫的方法,需要的朋友可以參考下
    2021-07-07
  • mysql下mysqladmin日常管理命令總結(jié)(必看篇)

    mysql下mysqladmin日常管理命令總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄猰ysql下mysqladmin日常管理命令總結(jié)(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • mysql表的清空、刪除和修改操作詳解

    mysql表的清空、刪除和修改操作詳解

    這篇文章主要詳細(xì)介紹了mysql表的清空、刪除和修改操作的方法,以及一些常用的mysql的常用操作,非常的簡單實(shí)用,有需要的可以參考下
    2014-09-09
  • 解決MySQL5.7安裝后沒有data文件夾無法登錄的問題

    解決MySQL5.7安裝后沒有data文件夾無法登錄的問題

    這篇文章主要介紹了解決MySQL5.7安裝后沒有data文件夾無法登錄的問題,需要的朋友可以參考下
    2016-04-04

最新評論