欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql 5.5 udf

錢良釵2年前10瀏覽0評論

MySQL是一種廣泛使用的關系型數據庫管理系統,也是用于Web應用程序的一種開源數據庫。

MySQL 5.5使用用戶定義函數(UDF)擴展MySQL函數庫,這允許開發人員添加自定義函數到mysql服務器。

UDF可以是用C或C++編寫的動態共享庫,或者是其他編程語言(如Java或Python)編寫的可執行文件。

#include <mysql.h>
#ifdef STANDARD
/* STANDARD macro */
#else
#define STANDARD
#endif
#include <string.h>
#include <ctype.h>
#define HA_NAME "myudf"
extern "C" {
my_bool myudf_init(UDF_INIT *initid, UDF_ARGS *args, char *message);
void myudf_deinit(UDF_INIT *initid);
long long myudf(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error);
}
my_bool myudf_init(UDF_INIT *initid, UDF_ARGS *args, char *message) {
return 0;
}
void myudf_deinit(UDF_INIT *initid) {
return;
}
long long myudf(UDF_INIT *initid, UDF_ARGS *args, char *is_null, char *error) {
const char *str = args->args[0];
if (str == NULL || strlen(str) == 0) {
return 0;
}
long long len = strlen(str);
int i;
long long sum = 0;
for (i = 0; i < len; i++) {
sum += str[i] - '0';
}
return sum;
}

這是一個簡單的UDF,此函數將輸入的字符串中的每個數字相加并將其作為輸出返回。

在MySQL中使用UDF語法創建此函數:

CREATE FUNCTION mysum RETURNS INT SONAME 'myudf.so';

然后在MySQL中可以像使用內置函數一樣使用此函數:

SELECT mysum('12345');

結果將是15。

下一篇mysql 5.4.3