MySQL 內置函數

来源:https://www.cnblogs.com/klvchen/archive/2018/12/18/10130428.html
-Advertisement-
Play Games

CHAR_LENGTH(str) 返回值為字元串str 的長度,長度的單位為字元。一個多位元組字元算作一個單字元。 CONCAT(str1,str2,...) 字元串拼接, 如有任何一個參數為NULL ,則返回值為 NULL。 CONCAT_WS(separator,str1,str2,...) 字元 ...


CHAR_LENGTH(str)

返回值為字元串str 的長度,長度的單位為字元。一個多位元組字元算作一個單字元。

+------------------------+
| CHAR_LENGTH('klvchen') |
+------------------------+
|                      7 |
+------------------------+
1 row in set (0.00 sec)

mysql> SELECT CHAR_LENGTH('你');
+--------------------+
| CHAR_LENGTH('你')  |
+--------------------+
|                  1 |
+--------------------+
1 row in set (0.00 sec)

CONCAT(str1,str2,...)

字元串拼接, 如有任何一個參數為NULL ,則返回值為 NULL。

mysql> SELECT CONCAT('kl','v','chen');
+-------------------------+
| CONCAT('kl','v','chen') |
+-------------------------+
| klvchen                 |
+-------------------------+
1 row in set (0.00 sec)

CONCAT_WS(separator,str1,str2,...)

字元串拼接(自定義連接符)CONCAT_WS()不會忽略任何空字元串。 (然而會忽略所有的 NULL)

mysql> SELECT CONCAT_WS('_','chen','wj');
+----------------------------+
| CONCAT_WS('_','chen','wj') |
+----------------------------+
| chen_wj                    |
+----------------------------+
1 row in set (0.01 sec)

mysql> SELECT CONCAT_WS('_','chen',' wj ', NULL, 'hehe');
+--------------------------------------------+
| CONCAT_WS('_','chen',' wj ', NULL, 'hehe') |
+--------------------------------------------+
| chen_ wj _hehe                             |
+--------------------------------------------+
1 row in set (0.00 sec)

CONV(N,from_base,to_base)

進位轉換

mysql> SELECT CONV('a',16,2);
+----------------+
| CONV('a',16,2) |
+----------------+
| 1010           |
+----------------+
1 row in set (0.00 sec)

FORMAT(X,D)

將數字X 的格式寫為'#,###,###.##',以四捨五入的方式保留小數點後 D 位, 並將結果以字元串的形式返回。若 D 為 0, 則返回結果不帶有小數點,或不含小數部分。

mysql> SELECT FORMAT(1.23,4);
+----------------+
| FORMAT(1.23,4) |
+----------------+
| 1.2300         |
+----------------+
1 row in set (0.00 sec)

INSERT(str,pos,len,newstr)

str 原字元串; pos 要替換位置其實位置(從1開始); len:替換的長度;newstr:需要替換的符串
簡潔概況為:先從 pos 處刪除 len 長度的字元串,再由新的字元串代替

mysql> SELECT INSERT('klvchen', 1, 1, 'j');
+------------------------------+
| INSERT('klvchen', 1, 1, 'j') |
+------------------------------+
| jlvchen                      |
+------------------------------+
1 row in set (0.00 sec)

mysql> SELECT INSERT('klvchen', 1, 1, 'ja');
+-------------------------------+
| INSERT('klvchen', 1, 1, 'ja') |
+-------------------------------+
| jalvchen                      |
+-------------------------------+
1 row in set (0.00 sec)

mysql> SELECT INSERT('klvchen', 1, 2, 'a');
+------------------------------+
| INSERT('klvchen', 1, 2, 'a') |
+------------------------------+
| avchen                       |
+------------------------------+
1 row in set (0.00 sec)

INSTR(str,substr)

返回字元串 str 中子字元串的第一個出現位置。

mysql> SELECT INSTR('klvchen','l');
+----------------------+
| INSTR('klvchen','l') |
+----------------------+
|                    2 |
+----------------------+
1 row in set (0.00 sec)

LOCATE(substr,str,pos)

獲取子序列索引位置

mysql> SELECT LOCATE('l','klvchen',1);
+-------------------------+
| LOCATE('l','klvchen',1) |
+-------------------------+
|                       2 |
+-------------------------+
1 row in set (0.01 sec)

LEFT(str,len)

返回字元串 str 從開始的 len 位置的子序列字元。

mysql> SELECT LEFT('klvchen',2);
+-------------------+
| LEFT('klvchen',2) |
+-------------------+
| kl                |
+-------------------+
1 row in set (0.00 sec)

RIGHT(str,len)

從字元串 str 開始,返回從後邊開始 len個字元組成的子序列

mysql> SELECT RIGHT('klvchen', 2);
+---------------------+
| RIGHT('klvchen', 2) |
+---------------------+
| en                  |
+---------------------+
1 row in set (0.00 sec)

LOWER(str)

字元串轉化為小寫

mysql> SELECT LOWER('KLVCHEN');
+------------------+
| LOWER('KLVCHEN') |
+------------------+
| klvchen          |
+------------------+
1 row in set (0.00 sec)

UPPER(str)

字元串轉化為大寫

mysql> SELECT UPPER('klvchen');
+------------------+
| UPPER('klvchen') |
+------------------+
| KLVCHEN          |
+------------------+
1 row in set (0.00 sec)

LTRIM(str)

返回字元串 str ,左邊的空格字元被刪除。

mysql> SELECT LTRIM('  klvchen');
+--------------------+
| LTRIM('  klvchen') |
+--------------------+
| klvchen            |
+--------------------+
1 row in set (0.00 sec)

RTRIM(str)

返回字元串 str ,結尾空格字元被被刪除。

mysql> SELECT RTRIM('klvchen    ');
+----------------------+
| RTRIM('klvchen    ') |
+----------------------+
| klvchen              |
+----------------------+
1 row in set (0.00 sec)

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str)

返回字元串 str , 其中所有remstr 首碼和/或尾碼都已被刪除。若分類符BOTH、LEADIN或TRAILING中沒有一個是給定的,則假設為BOTH 。 remstr 為可選項,在未指定情況下,可刪除空格。

mysql> SELECT TRIM('   kl   ');
+------------------+
| TRIM('   kl   ') |
+------------------+
| kl               |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT TRIM(LEADING 'x' FROM  'xxklxx');
+----------------------------------+
| TRIM(LEADING 'x' FROM  'xxklxx') |
+----------------------------------+
| klxx                             |
+----------------------------------+
1 row in set (0.00 sec)

mysql> SELECT TRIM(BOTH 'x' FROM  'xxklxx');
+-------------------------------+
| TRIM(BOTH 'x' FROM  'xxklxx') |
+-------------------------------+
| kl                            |
+-------------------------------+
1 row in set (0.00 sec)

mysql> SELECT TRIM(trailing 'x' FROM  'xxklxx');
+-----------------------------------+
| TRIM(trailing 'x' FROM  'xxklxx') |
+-----------------------------------+
| xxkl                              |
+-----------------------------------+
1 row in set (0.00 sec)

REPEAT(str,count)

返回一個由重覆的字元串 str 組成的字元串,字元串str重覆的次數等於count的值 。
若 count <= 0,則返回一個空字元串;若str 或 count 為 NULL,則返回 NULL 。

mysql> SELECT REPEAT('ha',3);
+----------------+
| REPEAT('ha',3) |
+----------------+
| hahaha         |
+----------------+
1 row in set (0.00 sec)

REPLACE(str,from_str,to_str)

返回字元串str 以及所有被字元串to_str替代的字元串from_str 。

mysql> SELECT REPLACE('klvchel', 'l', 'i');
+------------------------------+
| REPLACE('klvchel', 'l', 'i') |
+------------------------------+
| kivchei                      |
+------------------------------+
1 row in set (0.00 sec)

REVERSE(str)

返回字元串 str ,順序和字元順序相反。

mysql> SELECT REVERSE('klvchen');
+--------------------+
| REVERSE('klvchen') |
+--------------------+
| nehcvlk            |
+--------------------+
1 row in set (0.00 sec)

SUBSTRING(str,pos,len)

獲取字元串子序列

mysql> SELECT SUBSTRING('klvchen', 1, 3);
+----------------------------+
| SUBSTRING('klvchen', 1, 3) |
+----------------------------+
| klv                        |
+----------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING('klvchen', 3);
+-------------------------+
| SUBSTRING('klvchen', 3) |
+-------------------------+
| vchen                   |
+-------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING('klvchen' FROM 3);
+-----------------------------+
| SUBSTRING('klvchen' FROM 3) |
+-----------------------------+
| vchen                       |
+-----------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING('klvchen', -3);
+--------------------------+
| SUBSTRING('klvchen', -3) |
+--------------------------+
| hen                      |
+--------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING('klvchen', -3, 2);
+-----------------------------+
| SUBSTRING('klvchen', -3, 2) |
+-----------------------------+
| he                          |
+-----------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBSTRING('klvchen' FROM -3 FOR 2);
+------------------------------------+
| SUBSTRING('klvchen' FROM -3 FOR 2) |
+------------------------------------+
| he                                 |
+------------------------------------+
1 row in set (0.01 sec)

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

-Advertisement-
Play Games
更多相關文章
  • 四. 檢測下線狀態 對於Redis的Sentinel中關於下線有兩個不同的概念:(1)主觀下線(Subjectively Down, 簡稱 Sdown) 指的是單個 Sentinel 實例對伺服器做出的下線判斷,此時不會進行故障轉移。(2) 客觀下線(Objectively Down, 簡稱 Odo ...
  • Flume+Kafka+Storm整合 1. 需求: 有一個客戶端Client可以產生日誌信息,我們需要通過Flume獲取日誌信息,再把該日誌信息放入到Kafka的一個Topic:flume-to-kafka ...
  • 最近開發組同事使用Azure的Function App訪問公司內部的Oracle資料庫時,偶爾會遇到“ORA-12537: Network Session: End of file”這個錯誤。關於ORA-12537的詳細信息如下: [oracle@DB-Server ~]$ oerr ora 125... ...
  • 本文轉載地址 http://www.cnblogs.com/LBSer/p/3322630.html 點陣圖(BitMap)索引 前段時間聽同事分享,偶爾講起Oracle資料庫的點陣圖索引,頓時大感興趣。說來慚愧,在這之前對點陣圖索引一無所知,因此趁此機會寫篇博文介紹下點陣圖索引。 1. 案例 有張表名為t ...
  • 數據集的下載地址為 https://pan.baidu.com/s/1dtHJiV6zMbf_fWPi-dZ95g 我們要做的是預測貸款用戶是否會逾期。表格中 "status" 是結果標簽:0表示未逾期,1表示逾期。 先對數據進行三七分,隨機種子2018。這裡利用了LR,SVM,DecisionTr ...
  • 問題描述 在我遠程連接我的伺服器資料庫的時候,navicat給我提示了這麼一個錯誤: 思考解決 首先 鑒於前兩天我剛幫別人解決了這個一模一樣的問題,都是錯誤代碼1130,當時解決的方向是:(不過本方法對我而言並沒有生效) 其次 是否可能是mysql的配置中bind-address的問題呢,於是我去找 ...
  • 本文是對MySQL中觸發器的總結,從觸發器概念出發,結合實例對創建觸發器、使用觸發器、刪除觸發器進行介紹。 ...
  • 定義自定義函數 調用 f1 函數 查詢 tmp 表中的數據 在查詢中調用 f1 函數 運行結果: 函數與存儲過程的區別 存儲過程: 1. 裡面包含 SQL 語句 2. intout, out 構造返回值 3. 調用方式:select 函數名(參數) 函數: 1. 裡面不能包含 SQL 語句 2. r ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...