翻譯|使用教程|編輯:吳園園|2020-06-09 09:58:12.047|閱讀 645 次
概述:在今天的文章中,我們將學(xué)習(xí)如何使用幾個本地SQL字符串函數(shù)來計算char,varchar或text字段中字符串出現(xiàn)的次數(shù)。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Navicat for MySQL是一套管理和開發(fā) MySQL 或 MariaDB 的理想解決方案。數(shù)據(jù)傳輸、數(shù)據(jù)同步和結(jié)構(gòu)同步讓你以低成本輕松快速地遷移數(shù)據(jù)。提供詳細(xì)的指引,在各種數(shù)據(jù)庫之間傳輸數(shù)據(jù)。比對和同步數(shù)據(jù)庫的數(shù)據(jù)和結(jié)構(gòu)。只需幾秒鐘就能設(shè)置和部署比對,并獲得你要運行更改的詳細(xì)腳本。
盡管SQL不像Java,C ++和PHP這樣的過程編程語言精通字符串處理,但是SQL確實提供了許多處理字符串?dāng)?shù)據(jù)的功能。這些可以用來修剪多余的空格或字符,確定字符串有多長,并將多個字段值連接在一起。字符串函數(shù)非常值得熟悉,因為它們可以幫助提高代碼的效率和可讀性。在今天的博客中,我們將學(xué)習(xí)如何使用幾個本地SQL字符串函數(shù)來計算char,varchar或text字段中字符串出現(xiàn)的次數(shù)。
引入LENGTH()和REPLACE()函數(shù)
今天我們將在這里使用的兩個函數(shù)是LENGTH(str)和REPLACE(str,from_str,to_str)。LENGTH()返回字符串的長度(以字節(jié)為單位);REPLACE()通過執(zhí)行區(qū)分大小寫的匹配,返回字符串str,并將所有出現(xiàn)的字符串from_str替換為字符串to_str。
LENGTH()函數(shù)返回字符串的長度(以字節(jié)為單位)。這有一些重要的影響,因為這意味著對于包含五個2個字節(jié)字符的字符串,LENGTH()返回10。要計算直字符,請改用CHAR_LENGTH()。
這是一個例子:
這是REPLACE()函數(shù)的示例,該函數(shù)將URL的協(xié)議從“ http”更改為“ https”:
讓我們開始計數(shù)
通過將LENGTH()和REPLACE()與ROUND()函數(shù)結(jié)合使用,我們可以獲得包含文本內(nèi)容的字段中特定子字符串的計數(shù)。這是一個使用Sakila Sample數(shù)據(jù)庫的示例,該數(shù)據(jù)庫在電影表的描述字段中返回單詞“ Documentary”的計數(shù):
本質(zhì)上,我們的查詢將目標(biāo)子字符串的出現(xiàn)替換為空(“”)字符串,并比較結(jié)果字符串的長度。它們之間的區(qū)別是源字段中子字符串出現(xiàn)的次數(shù)。
將查詢整合到用戶功能中
如果計劃在許多不同的表上執(zhí)行字計數(shù)或使用各種子字符串值,則應(yīng)考慮將主要計算合并到自定義用戶功能中。這是我在Navicat中創(chuàng)建的名為`count_string_instances`的函數(shù):
測試功能
我們可以通過單擊“ 執(zhí)行”按鈕就地測試我們的功能。這將打開一個對話框以接受輸入?yún)?shù):
結(jié)果確認(rèn)該功能正常運行:
從查詢中調(diào)用我們的功能
使用我們的函數(shù)后,我們可以用對count_string_instances()函數(shù)的調(diào)用來替換查詢的計算部分。當(dāng)我們開始輸入函數(shù)名稱時,Navicat自動建議列表現(xiàn)在包括我們的函數(shù)!
與所有函數(shù)一樣,它會插入帶有設(shè)置好的輸入?yún)?shù)的查詢中。我們可以通過TAB鍵在它們之間導(dǎo)航:
這是帶有結(jié)果的更新查詢:
結(jié)論
有許多SQL字符串函數(shù)可以幫助使您的代碼更加有效和可讀。結(jié)合使用時,這些功能尤其強大。在今天的文章中,我們學(xué)習(xí)如何通過使用Navicat的多功能函數(shù)和存儲過程編輯器創(chuàng)建自定義用戶函數(shù)來計算char,varchar或text字段中字符串出現(xiàn)的次數(shù)。
有想要購買正版授權(quán)的朋友,歡迎
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@ke049m.cn
文章轉(zhuǎn)載自: