Mysql - 函數

来源:http://www.cnblogs.com/elvinle/archive/2016/12/27/6226520.html
-Advertisement-
Play Games

Mysql提供的函數是在是太多了, 很多我都見過, 別說用了. 園子裡面, 有人弄了一個比較全的. MYSQL函數 我這裡會將他寫的完全拷貝下來, 中間會插入一些自己項目中使用過的心得 一、數學函數 數學函數, 說實話, 我暫時還真沒怎麼用過, 就是在系統中做統計的時候, 也沒用過. 能在程式中處理 ...


Mysql提供的函數是在是太多了, 很多我都見過, 別說用了. 園子裡面, 有人弄了一個比較全的. MYSQL函數

我這裡會將他寫的完全拷貝下來, 中間會插入一些自己項目中使用過的心得

一、數學函數

  數學函數, 說實話, 我暫時還真沒怎麼用過, 就是在系統中做統計的時候, 也沒用過. 能在程式中處理的, 我都放到程式中處理了. 資料庫, 主要還是負責讀寫數據.

  數學函數主要用於處理數字,包括整型、浮點數等。

函數 作用
ABS(x)

返回x的絕對值  

SELECT ABS(-1) -- 返回1

CEIL(x)

CEILING(x)

返回大於或等於x的最小整數  

SELECT CEIL(1.5) -- 返回2

FLOOR(x)

返回小於或等於x的最大整數  

SELECT FLOOR(1.5) -- 返回1

RAND()

返回0->1的隨機數  

SELECT RAND() --0.93099315644334

RAND(x)

返回0->1的隨機數,x值相同時返回的隨機數相同  

SELECT RAND(2) --1.5865798029924

SIGN(x)

返回x的符號,x是負數、0、正數分別返回-1、0和1  

SELECT SIGN(-10) -- (-1)

PI()

返回圓周率(3.141593)  

SELECT PI() --3.141593

TRUNCATE(x,y)

返回數值x保留到小數點後y位的值(與ROUND最大的區別是不會進行四捨五入)  

SELECT TRUNCATE(1.23456,3) -- 1.234

ROUND(x) 返回離x最近的整數  SELECT ROUND(1.23456) --1
ROUND(x,y)

保留x小數點後y位的值,但截斷時要進行四捨五入  

SELECT ROUND(1.23456,3) -- 1.235

POW(x,y)

POWER(x,y)

返回x的y次方  

SELECT POW(2,3) -- 8

SQRT(x)

返回x的平方根  

SELECT SQRT(25) -- 5

EXP(x)

返回e的x次方  

SELECT EXP(3) -- 20.085536923188

MOD(x,y)

返回x除以y以後的餘數  

SELECT MOD(5,2) -- 1

LOG(x)

返回自然對數(以e為底的對數)  

SELECT LOG(20.085536923188) -- 3

LOG10(x)

返回以10為底的對數  

SELECT LOG10(100) -- 2

RADIANS(x)

將角度轉換為弧度  

SELECT RADIANS(180) -- 3.1415926535898

DEGREES(x)

將弧度轉換為角度  

SELECT DEGREES(3.1415926535898) -- 180

SIN(x)

求正弦值(參數是弧度)  

SELECT SIN(RADIANS(30)) -- 0.5

ASIN(x) 求反正弦值(參數是弧度)
COS(x) 求餘弦值(參數是弧度)
ACOS(x) 求反餘弦值(參數是弧度)
TAN(x) 求正切值(參數是弧度)

ATAN(x) 

ATAN2(x)

求反正切值(參數是弧度)
COT(x) 求餘切值(參數是弧度)

 

 二、字元串函數

  字元串函數, 在程式中, 使用的比較多.  我用的比較多的, 會用紅色標記出來.

  字元串函數是MySQL中最常用的一類函數,字元串函數主要用於處理表中的字元串。

函數 說明
CHAR_LENGTH(s)

返回字元串s的字元數

SELECT CHAR_LENGTH('你好123') -- 5

LENGTH(s)

返回字元串s的長度

SELECT LENGTH('你好123') -- 9

CONCAT(s1,s2,...)

將字元串s1,s2等多個字元串合併為一個字元串

SELECT CONCAT('12','34') -- 1234

GROUP_CONCAT(id)

select id,pid,GROUP_CONCAT(id) from ztree group by pid;   分組後, 將所選出的列拼接, 並且還可以指定拼接的字元串

group_contact(id SEPARATOR '-')

CONCAT_WS(x,s1,s2,...)

同CONCAT(s1,s2,...)函數,但是每個字元串直接要加上x

SELECT CONCAT_WS('@','12','34') -- 12@34

INSERT(s1,x,len,s2)

將字元串s2替換s1的x位置開始長度為len的字元串

SELECT INSERT('12345',1,3,'abc') -- abc45

UPPER(s),UCAASE(S)

將字元串s的所有字母變成大寫字母

SELECT UPPER('abc') -- ABC

LOWER(s),LCASE(s)

將字元串s的所有字母變成小寫字母

SELECT LOWER('ABC') -- abc

LEFT(s,n)

返回字元串s的前n個字元

SELECT LEFT('abcde',2) -- ab

RIGHT(s,n)

返回字元串s的後n個字元

SELECT RIGHT('abcde',2) -- de

LPAD(s1,len,s2)

字元串s2來填充s1的開始處,使字元串長度達到len

SELECT LPAD('abc',5,'xx') -- xxabc

RPAD(s1,len,s2)

字元串s2來填充s1的結尾處,使字元串的長度達到len

SELECT RPAD('abc',5,'xx') -- abcxx

LTRIM(s) 去掉字元串s開始處的空格
RTRIM(s) 去掉字元串s結尾處的空格
TRIM(s) 去掉字元串s開始和結尾處的空格
TRIM(s1 FROM s)

去掉字元串s中開始處和結尾處的字元串s1

SELECT TRIM('@' FROM '@@abc@@') -- abc

REPEAT(s,n)

將字元串s重覆n次

SELECT REPEAT('ab',3) -- ababab

SPACE(n) 返回n個空格
REPLACE(s,s1,s2)

將字元串s2替代字元串s中的字元串s1

SELECT REPLACE('abc','a','x') --xbc

STRCMP(s1,s2) 比較字元串s1和s2
SUBSTRING(s,n,len) 獲取從字元串s中的第n個位置開始長度為len的字元串
MID(s,n,len) 同SUBSTRING(s,n,len)

LOCATE(s1,s)

POSITION(s1 IN s)

從字元串s中獲取s1的開始位置

SELECT LOCATE('b', 'abc') -- 2

INSTR(s,s1)

從字元串s中獲取s1的開始位置

SELECT INSTR('abc','b') -- 2

REVERSE(s)

將字元串s的順序反過來

SELECT REVERSE('abc') -- cba

ELT(n,s1,s2,...)

返回第n個字元串

SELECT ELT(2,'a','b','c') -- b

EXPORT_SET(x,s1,s2)

返回一個字元串,在這裡對於在“bits”中設定每一位,你得到一個“on”字元串,並且對於每個複位(reset)的位,

你得到一個 “off”字元串。每個字元串用“separator”分隔(預設“,”),並且只有“bits”的“number_of_bits” (預設64)位被使用。

SELECT EXPORT_SET(5,'Y','N',',',4) -- Y,N,Y,N

FIELD(s,s1,s2...)

返回第一個與字元串s匹配的字元串位置

SELECT FIELD('c','a','b','c') -- 3

FIND_IN_SET(s1,s2)

返回在字元串s2中與s1匹配的字元串的位置, 比如在 11,12,13 中, 查找 1 和11, 1 是查不到的, 11能查到

FIND_IN_SET('11', '11,12,13') -> 1

MAKE_SET(x,s1,s2) 返回一個集合 (包含由“,”

字元分隔的子串組成的一個 字元串),由相應的位在bits集合中的的字元串組成。str1對應於位0,str2對 應位1,等等。

SELECT MAKE_SET(1|4,'a','b','c'); -- a,c

SUBSTRING_INDEX

返回從字元串str的第count個出現的分隔符delim之後的子串。

如果count是正數,返回第count個字元左邊的字元串。

如果count是負數,返回第(count的絕對值(從右邊數))個字元右邊的字元串。

SELECT SUBSTRING_INDEX('a*b','*',1) -- a
SELECT SUBSTRING_INDEX('a*b','*',-1) -- b
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1) -- c

LOAD_FILE(file_name)

讀入文件並且作為一個字元串返迴文件內容。文件必須在伺服器上,你必須指定到文件的完整路徑名,

而且你必須有file權 限。文件必須所有內容都是可讀的並且小於max_allowed_packet。 如果文件不存在或由於上面原因之一不能被讀出,函數返回NULL。

 

三、日期時間函數

  MySQL的日期和時間函數主要用於處理日期時間。

函數 說明

CURDATE()

CURRENT_DATE()

返回當前日期

SELECT CURDATE()
->2014-12-17

CURTIME()

CURRENT_TIME

返回當前時間

SELECT CURTIME()
->15:59:02

NOW()

CURRENT_TIMESTAMP()

LOCALTIME()

SYSDATE()

LOCALTIMESTAMP()

返回當前日期和時間

SELECT NOW()
->2014-12-17 15:59:02

UNIX_TIMESTAMP()

以UNIX時間戳的形式返回當前時間

SELECT UNIX_TIMESTAMP()
->1418803177

UNIX_TIMESTAMP(d)

將時間d以UNIX時間戳的形式返回

SELECT UNIX_TIMESTAMP('2011-11-11 11:11:11')
->1320981071

FROM_UNIXTIME(d)

將UNIX時間戳的時間轉換為普通格式的時間

SELECT FROM_UNIXTIME(1320981071)
->2011-11-11 11:11:11

UTC_DATE()

返回UTC日期

SELECT UTC_DATE()
->2014-12-17

UTC_TIME()

返回UTC時間

SELECT UTC_TIME()
->08:01:45 (慢了8小時)

MONTH(d)

返回日期d中的月份值,1->12

SELECT MONTH('2011-11-11 11:11:11')
->11

MONTHNAME(d)

返回日期當中的月份名稱,如Janyary

SELECT MONTHNAME('2011-11-11 11:11:11')
->November

DAYNAME(d)

返回日期d是星期幾,如Monday,Tuesday

SELECT DAYNAME('2011-11-11 11:11:11')
->Friday

DAYOFWEEK(d)

日期d今天是星期幾,1星期日,2星期一

SELECT DAYOFWEEK('2011-11-11 11:11:11')
->6

WEEKDAY(d)

日期d今天是星期幾,

 0表示星期一,1表示星期二

WEEK(d)

WEEKOFYEAR(d)

計算日期d是本年的第幾個星期,範圍是0->53

SELECT WEEK('2011-11-11 11:11:11')
->45

DAYOFYEAR(d)

計算日期d是本年的第幾天

SELECT DAYOFYEAR('2011-11-11 11:11:11')
->315

DAYOFMONTH(d)

計算日期d是本月的第幾天

SELECT DAYOFMONTH('2011-11-11 11:11:11')
->11

QUARTER(d)

返回日期d是第幾季節,返回1->4

SELECT QUARTER('2011-11-11 11:11:11')
->4

HOUR(t)

返回t中的小時值

SELECT HOUR('1:2:3')
->1

MINUTE(t)

返回t中的分鐘值

SELECT MINUTE('1:2:3')
->2

SECOND(t)

返回t中的秒鐘值

SELECT SECOND('1:2:3')
->3

EXTRACT(type FROM d)

從日期d中獲取指定的值,type指定返回的值

SELECT EXTRACT(MINUTE FROM '2011-11-11 11:11:11') 
->11

type可取值為:

MICROSECOND
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
SECOND_MICROSECOND
MINUTE_MICROSECOND
MINUTE_SECOND
HOUR_MICROSECOND
HOUR_SECOND
HOUR_MINUTE
DAY_MICROSECOND
DAY_SECOND
DAY_MINUTE
DAY_HOUR
YEAR_MONTH

TIME_TO_SEC(t)

將時間t轉換為秒

SELECT TIME_TO_SEC('1:12:00')
->4320

SEC_TO_TIME(s)

將以秒為單位的時間s轉換為時分秒的格式

SELECT SEC_TO_TIME(4320)
->01:12:00

TO_DAYS(d)

計算日期d距離0000年1月1日的天數

SELECT TO_DAYS('0001-01-01 01:01:01')
->366

FROM_DAYS(n)

計算從0000年1月1日開始n天後的日期

SELECT FROM_DAYS(1111)
->0003-01-16

DATEDIFF(d1,d2)

計算日期d1->d2之間相隔的天數

SELECT DATEDIFF('2001-01-01','2001-02-02')
->-32

ADDDATE(d,n)

計算其實日期d加上n天的日期

ADDDATE(d,INTERVAL expr type)

計算起始日期d加上一個時間段後的日期

SELECT ADDDATE('2011-11-11 11:11:11',1)
->2011-11-12 11:11:11 (預設是天)

SELECT ADDDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)
->2011-11-11 11:16:11 (TYPE的取值與上面那個列出來的函數類似)

DATE_ADD(d,INTERVAL expr type) 同上
SUBDATE(d,n)

日期d減去n天後的日期

SELECT SUBDATE('2011-11-11 11:11:11', 1)
->2011-11-10 11:11:11 (預設是天)

SUBDATE(d,INTERVAL expr type)

日期d減去一個時間段後的日期

SELECT SUBDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)
->2011-11-11 11:06:11 (TYPE的取值與上面那個列出來的函數類似)

ADDTIME(t,n)

時間t加上n秒的時間

SELECT ADDTIME('2011-11-11 11:11:11', 5)
->2011-11-11 11:11:16 (秒)

SUBTIME(t,n)

時間t減去n秒的時間

SELECT SUBTIME('2011-11-11 11:11:11', 5)
->2011-11-11 11:11:06 (秒)

DATE_FORMAT(d,f)

按表達式f的要求顯示日期d

SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')
->2011-11-11 11:11:11 AM

TIME_FORMAT(t,f)

按表達式f的要求顯示時間t

SELECT TIME_FORMAT('11:11:11','%r')
11:11:11 AM

GET_FORMAT(type,s)

獲得國家地區時間格式函數

select get_format(date,'usa')
->%m.%d.%Y (註意返回的就是這個奇怪的字元串(format字元串))

 

四、條件判斷函數

  1、IF(expr,v1,v2)函數

  如果表達式expr成立,返回結果v1;否則,返回結果v2。

SELECT IF(1 > 0,'正確','錯誤')    
->正確

  2、IFNULL(v1,v2)函數

  如果v1的值不為NULL,則返回v1,否則返回v2。

  這裡我用的比較多的是, ifnull(null, 0) 或者 ifnull(null, '')

SELECT IFNULL(null,'Hello Word')
->Hello Word

  3、CASE

  語法1:

複製代碼
CASE 
  WHEN e1
  THEN v1
  WHEN e2
  THEN e2
  ...
  ELSE vn
END
複製代碼

  CASE表示函數開始,END表示函數結束。如果e1成立,則返回v1,如果e2成立,則返回v2,當全部不成立則返回vn,而當有一個成立之後,後面的就不執行了。

複製代碼
SELECT CASE 
  WHEN 1 > 0 THEN '1 > 0'
  WHEN 2 > 0 THEN '2 > 0'
  ELSE '3 > 0'
  END
->1 > 0
複製代碼

  語法2:

CASE expr 
  WHEN e1 THEN v1
  WHEN e1 THEN v1
  ...
  ELSE vn
END

  如果表達式expr的值等於e1,返回v1;如果等於e2,則返回e2。否則返回vn。

SELECT CASE 1 
  WHEN 1 THEN '我是1'
  WHEN 2 THEN '我是2'
ELSE '你是誰'

 case這個經常用來行轉列, 比如把成績轉成成績表那種的

 

五、系統信息函數

  系統信息函數用來查詢MySQL資料庫的系統信息。

函數 作用
VERSION()

返回資料庫的版本號

SELECT VERSION()
->5.0.67-community-nt

CONNECTION_ID()  返回伺服器的連接數

DATABASE()

SCHEMA()

返回當前資料庫名

USER()

SYSTEM_USER()

SESSION_USER()

CURRENT_USER()

CURRENT_USER

返回當前用戶
CHARSET(str) 返回字元串str的字元集
COLLATION(str) 返回字元串str的字元排列方式
LAST_INSERT_ID() 返回最近生成的AUTO_INCREMENT值

 

六、加密函數

  加密函數是MySQL用來對數據進行加密的函數。

  1、PASSWORD(str)

  該函數可以對字元串str進行加密,一般情況下,PASSWORD(str)用於給用戶的密碼加密。

SELECT PASSWORD('123')
    ->*23AE809DDACAF96AF0FD78ED04B6A265E05AA257

  2、MD5

  MD5(str)函數可以對字元串str進行散列,可以用於一些普通的不需要解密的數據加密。

SELECT md5('123')
    ->202cb962ac59075b964b07152d234b70

  3、ENCODE(str,pswd_str)與DECODE(crypt_str,pswd_str)

  ENCODE函數可以使用加密密碼pswd_str來加密字元串str,加密結果是二進位數,需要使用BLOB類型的欄位保存。該函數與DECODE是一對,需要同樣的密碼才能夠解密。

SELECT ENCODE('123','xxoo')
    ->;vx
SELECT DECODE(';vx','xxoo')
    ->123

 

七、其它函數

  1、格式化函數FORMAT(x,n)

  FORMAT(x,n)函數可以將數字x進行格式化,將x保留到小數點後n位。

SELECT FORMAT(3.1415926,3)
    ->3.142

  2、不同進位的數字進行轉換

  • ASCII(s) 返回字元串s的第一個字元的ASCII碼;
  • BIN(x) 返回x的二進位編碼;
  • HEX(x) 返回x的十六進位編碼;
  • OCT(x) 返回x的八進位編碼;
  • CONV(x,f1,f2) 返回f1進位數變成f2進位數;

  3、IP地址與數字相互轉換的函數

  • INET_ATON(IP)函數可以將IP地址轉換為數字表示;IP值需要加上引號;
  • INET_NTOA(n)函數可以將數字n轉換成IP形式。
SELECT INET_ATON('192.168.0.1')
    ->3232235521
SELECT INET_NTOA(3232235521)
    ->192.168.0.1

  4、加鎖函數和解鎖函數

  • GET_LOCK(name,time)函數定義一個名稱為nam、持續時間長度為time秒的鎖。如果鎖定成功,則返回1;如果嘗試超時,則返回0;如果遇到錯誤,返回NULL。
  • RELEASE_LOCK(name)函數解除名稱為name的鎖。如果解鎖成功,則返回1;如果嘗試超時,返回0瞭如果解鎖失敗,返回NULL;
  • IS_FREE_LOCK(name)函數判斷是否已使用名為name的鎖定。如果使用,返回0,否則,返回1;
SELECT GET_LOCK('MySQL',10)
    ->1    (持續10秒)
SELECT IS_FREE_LOCK('MySQL')
    ->1    
SELECT RELEASE_LOCK('MySQL')
    ->1

  5、重覆執行指定操作的函數

  BENCHMARK(count.expr)函數將表達式expr重覆執行count此,然後返回執行時間。該函數可以用來判斷MySQL處理表達式的速度。

SELECT BENCHMARK(10000,NOW())
    ->0    返回系統時間1萬

  6、改變字元集的函數

  CONVERT(s USING cs)函數將字元串s的字元集變成cs。

SELECT CHARSET('ABC')
    ->utf-8    

SELECT CHARSET(CONVERT('ABC' USING gbk))
    ->gbk

  7、轉換數據類型

  • CAST(x AS type)
  • CONVERT(x,type)

  這裡特別要註意, 這些個類型, 我以前經常喜歡寫 cast('1' as int)這是不對的.  

  這兩個函數只對BINARYCHAR、DATE、DATETIME、TIME、SIGNED INTEGER、UNSIGNED INTEGER。

複製代碼
SELECT CAST('123' AS UNSIGNED INTEGER) + 1
    ->124

SELECT '123' + 1
    ->124 其實MySQL能預設轉換

SELECT CAST(NOW() AS DATE)
  ->2014-12-18
複製代碼

 

最後,  再次感謝逆心的這篇mysql函數, 如果我此文侵犯了版權, 請給我留言, 我會收回這篇博文, 留給自己當做文檔使用

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 由[OpenDigg](http://www.opendigg.com/) 出品的安卓開源項目周報第三期來啦。我們的安卓開源周報集合了OpenDigg一周來新收錄的優質的安卓開發方面的開源項目,方便安卓開發人員便捷的找到自己需要的項目工具等。 ...
  • 一、文件進行IPC介紹 共用文件也是一種不錯的進程間通信方式,兩個進程通過讀/寫同一個文件來交換數據。在Windows上,一個文件如果被加了排斥鎖將會導致其他線程無法對其進行訪問,包括讀寫,而由於Android系統基於Linux,使其併發讀/寫文件可以沒有限制地進行,甚至兩個線程同時對同一個文件進行 ...
  • 本報告總結了2016年比較嚴重的iOS漏洞(可用於遠程代碼執行或越獄),希望能夠對大家移動安全方面的工作和研究帶來一些幫助。 ...
  • 1.Android數據存儲的五種方法 (1)SharedPreferences數據存儲 詳情介紹:http://www.cnblogs.com/zhangmiao14/p/6201900.html 優點:SharedPreferences是很輕量級的應用,使用起來也很方便、簡潔。 缺點:存儲數據類型 ...
  • 在研發中總會遇到一些莫名的需求,本著存在即合理的態度跟大家分享一下"模態Model視圖跳轉和Push視圖跳轉的需求實現",本文僅僅傳授研發技術不傳授產品以及UE的思想,請大家合理對待;推薦乾貨:一鍵合成APP引導頁,包含不同狀態下的引導頁操作方式,同時支持動態圖片引導頁和靜態圖片引導頁以及視頻引導頁 ...
  • 實現攔截 的`pop`操作有兩種方式: 自定義實現返回按鈕,即設置 來實現自定義的返回操作。 創建 的`Category navigationBar: shouldPopItem:`的邏輯。 UIViewController+BackButtonHandler.h: UIViewController ...
  • 轉載地址:http://www.jb51.net/article/77206.htm 這篇文章主要介紹了Android和JavaScript相互調用的方法,實例分析了Android的WebView執行JavaScript及JavaScript訪問Android的技巧,需要的朋友可以參考下: 本文實例 ...
  • 普通分頁 數據分頁在網頁中十分多見,分頁一般都是limit start,offset,然後根據頁碼page計算start 這種分頁在幾十萬的時候分頁效率就會比較低了,MySQL需要從頭開始一直往後計算,這樣大大影響效率 我們可以用explain分析下語句,沒有用到任何索引,MySQL執行的行數是16 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...