翻譯|使用教程|編輯:吳園園|2020-06-09 09:58:12.047|閱讀 631 次
概述:在今天的文章中,我們將學習如何使用幾個本地SQL字符串函數來計算char,varchar或text字段中字符串出現的次數。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Navicat for MySQL是一套管理和開發 MySQL 或 MariaDB 的理想解決方案。數據傳輸、數據同步和結構同步讓你以低成本輕松快速地遷移數據。提供詳細的指引,在各種數據庫之間傳輸數據。比對和同步數據庫的數據和結構。只需幾秒鐘就能設置和部署比對,并獲得你要運行更改的詳細腳本。
盡管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 Sample數據庫的示例,該數據庫在電影表的描述字段中返回單詞“ Documentary”的計數:
本質上,我們的查詢將目標子字符串的出現替換為空(“”)字符串,并比較結果字符串的長度。它們之間的區別是源字段中子字符串出現的次數。
將查詢整合到用戶功能中
如果計劃在許多不同的表上執行字計數或使用各種子字符串值,則應考慮將主要計算合并到自定義用戶功能中。這是我在Navicat中創建的名為`count_string_instances`的函數:
測試功能
我們可以通過單擊“ 執行”按鈕就地測試我們的功能。這將打開一個對話框以接受輸入參數:
結果確認該功能正常運行:
從查詢中調用我們的功能
使用我們的函數后,我們可以用對count_string_instances()函數的調用來替換查詢的計算部分。當我們開始輸入函數名稱時,Navicat自動建議列表現在包括我們的函數!
與所有函數一樣,它會插入帶有設置好的輸入參數的查詢中。我們可以通過TAB鍵在它們之間導航:
這是帶有結果的更新查詢:
結論
有許多SQL字符串函數可以幫助使您的代碼更加有效和可讀。結合使用時,這些功能尤其強大。在今天的文章中,我們學習如何通過使用Navicat的多功能函數和存儲過程編輯器創建自定義用戶函數來計算char,varchar或text字段中字符串出現的次數。
有想要購買正版授權的朋友,歡迎
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: