文本處理函數
之前我們說過用來去除串尾空格的rtrim()函數,這就是用函數處理本文。
下面我們介紹另外一個函數,upper()函數:
輸入:
select?vend_name,upper(vend_name)?as?vend_name_upcase?from?vendors?order?by?vend_name;
輸出:
分析:正如所見,upper()將文本轉換為大寫,因此本例子中每個供應商都列出兩次,第一次為vendors表中存儲的值,第二次作為vend_name_upcase轉換為大寫。
下表列出了某些常用的文本處理函數:
表中的soundex需要進一步的解釋。soundex是一個將任何文本串轉換為描述其語音表示的字母數字模式的算法。soundex考慮了類似的發音字符和音節,使得能對串進行發音比較而不是字母比較。雖然soundex不是SQL概念,但MySQL都提供對soundex的支持。
下面給出一個使用soundex()函數的例子。customers表中有一個顧客Coyote Inc.,其聯系名為Y.Lee。但如果這是輸入錯誤,此聯系名實際應該是Y.Lie,怎么辦呢?顯然,按正確的聯系名所搜不會返回數據,如下所示:
輸入:
select?cust_name,cust_contact?from?customers?where?cust_contact?=?'Y.Lie';
輸出:
現在試一下使用soundex()函數進行搜索,它匹配所有發音類似于Y.Lie的聯系名:
輸入:
select?cust_name,cust_contact?from?customers?where?soundex(cust_contact)?=soundex('Y.Lie');
輸出:
分析:在這個例子中,where子句使用soundex()函數來轉換cust_contact列值和搜索串為它們的soundex值。因為Y.Lee和Y.Lie發音相似,所以它們的soundex值匹配,因此where子句正確地過濾除了所需的數據。
【相關推薦】
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END