轉帖|使用教程|編輯:鮑佳佳|2020-12-09 11:56:43.313|閱讀 493 次
概述:今天我們將在這里使用的兩個函數是 LENGTH(str) 和 REPLACE(str, from_str, to_str)。LENGTH() 返回字符串的長度(以字節為單位);而 REPLACE() 通過執行區分大小寫的匹配,返回字符串 str,并將所有出現的字符串 from_str 替換為字符串 to_str。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Navicat Premium是一個可連接多種數據庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL數據庫,讓管理不同類型的數據庫更加的方便。
盡管 SQL 不像 Java、C ++ 和 PHP 這樣的過程編程語言精通字符串處理,但是 SQL 確實提供了許多處理字符串數據的函數。可以使用這些函數來修剪多余的空格或字符,確定字符串的長度以及將多個字段值連接在一起。字符串函數非常值得我們學習,因為它們可以幫助提高代碼的效率和可讀性。在今天的文章中,我們將學習如何使用幾個本機 SQL 字符串函數來計算 char、varchar 或 text 字段中字符串出現的次數。
介紹 LENGTH() 和 REPLACE() 函數
今天我們將在這里使用的兩個函數是 LENGTH(str) 和 REPLACE(str, from_str, to_str)。LENGTH() 返回字符串的長度(以字節為單位);而 REPLACE() 通過執行區分大小寫的匹配,返回字符串 str,并將所有出現的字符串 from_str 替換為字符串 to_str。
LENGTH() 函數返回字符串的長度(以字節為單位)。這有一些重要的影響,因為這意味著對于包含五個 2 個字節字符的字符串,LENGTH() 會返回 10。若要計算純字符長度,請改用 CHAR_LENGTH()。
舉個例子:
這是 REPLACE() 函數的示例,該函數將 URL 的協議從“http”更改為“https”:
開始計數
通過將 LENGTH() 和 REPLACE() 與 ROUND() 函數結合使用,我們可以獲得包含文本內容的字段中特定子字符串的計數。這是一個使用 Sakila 示例數據庫的例子,在 film 表的 description 字段中返回單詞“Documentary”的計數:
本質上,我們的查詢將目標子字符串的出現替換為空(””)字符串,并比較結果字符串的長度。它們之間的區別是源字段中子字符串出現的次數。
將查詢整合到用戶函數中
如果你計劃在許多不同的表上計算字數或使用各種子字符串值,則應考慮將主要計算合并到自定義用戶功能中。這是我在 Navicat 中創建的名為“count_string_instances”的函數:
測試函數
我們可以通過點擊“運行”按鈕來就地測試我們的函數。這將打開一個對話框以接受輸入參數:
返回的結果確認該函數正常運行:
從查詢中調用我們的函數
函數準備好后,我們可以調用 count_string_instances() 函數來替換查詢的計算部分。當我們開始鍵入函數名稱時,Navicat 的自動建議列表現在包括我們的函數!
與所有函數一樣,插入查詢時,它會帶有可設置輸入參數。我們可以通過使用 TAB 鍵在它們之間導航
這是更新后的查詢和其結果:
服務器有許多 SQL 字符串函數可以幫助提高代碼的效率和可讀性。結合使用時,這些功能尤其強大。在今天的文章中,我們學習如何通過使用 多功能函數和存儲過程編輯器創建自定義用戶函數來計算 char、varchar 或 text 字段中字符串出現的次數。在慧都17周年慶!限時優惠Navicat Premium正版授權立減1000,一次購買終身享用!點擊查看詳情!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: