亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mysql查詢去空格的方法有哪些

發布時間:2023-04-25 11:19:04 來源:億速云 閱讀:135 作者:iii 欄目:開發技術

本篇內容主要講解“Mysql查詢去空格的方法有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Mysql查詢去空格的方法有哪些”吧!

    一、背景

            最近系統線上數據庫數據出現一個問題,發現某些字段存在一些異常的首尾空格,不管是使用trim對比還是like查詢都查詢不到具體的數據;在網上找了一些方法,最后發現一個去“不間斷空格”的方法解決了問題,在這里做一下記錄和匯總。

    二、方法

    1、trim()、ltrim()、rtrim()函數

    語法:trim(字段)  ||  trim([{BOTH | LEADING | TRAILING} [指定字符] FROM] 字段)

    (1)trim()去除字段首尾空白字符,也可以去除指定字符

    列子:去除商品零件號左右空格,以及指定字符,打印去除字符后的長度

    select
    	p.parts_num as "零件號(包含首尾各3個空格)",
    	length(p.parts_num) as "原始長度",
    	trim(p.parts_num),
    	length(trim(p.parts_num)) as "去除左右空格后長度",
    	trim(leading '   7' from p.parts_num),
    	length(trim(leading '   7' from p.parts_num)) as "去除左邊字符后長度",
    	trim(trailing '7   ' from p.parts_num),
    	length(trim(trailing '7   ' from p.parts_num)) as "去除右邊字符后長度"
    from
    	product p
    where
    	p.product_id = "1941573845271945216";

    結果:

    Mysql查詢去空格的方法有哪些

    (2)ltrim()去除左空格
    select
    	p.parts_num as "零件號(包含首尾各3個空格)",
    	length(p.parts_num) as "原始長度",
    	ltrim(p.parts_num),
    	length(ltrim(p.parts_num)) as "去除左空格后長度"
    from
    	product p
    where
    	p.product_id = "1941573845271945216";

    結果:

    Mysql查詢去空格的方法有哪些

    (3)rtrim()去除右空格
    select
    	p.parts_num as "零件號(包含首尾各3個空格)",
    	length(p.parts_num) as "原始長度",
    	rtrim(p.parts_num),
    	length(rtrim(p.parts_num)) as "去除右空格后長度"
    from
    	product p
    where
    	p.product_id = "1941573845271945216";

    結果:

    Mysql查詢去空格的方法有哪些

    2、replace()函數

    語法:replace(object,search,replace)

    (1)替換字段中指定字符為新字符
    select
    	p.parts_num as "零件號(包含首尾各3個空格)",
    	length(p.parts_num) as "原始長度",
    	replace(p.parts_num, ' ', ''),
    	length(replace(p.parts_num, ' ', '')) as "替換空格后長度",
    	replace(p.parts_num, '7', '8') as "把7替換成8"
    from
    	product p
    where
    	p.product_id = "1941573845271945216";

    結果:

    Mysql查詢去空格的方法有哪些

    (2)指定去除一下特殊字符

    水平制表符:CHAR(9)、換行符:CHAR(10)、回車符:CHAR(13)

    REPLACE(REPLACE(REPLACE(p.parts_num, CHAR(9), ''), CHAR(10), ''), CHAR(13), '')

    3、convert()函數配合trim()函數(解決了我的問題)

    (1)使用convert()先轉換一些特殊編碼的空格(unicode碼位u+00a0的utf-8編碼,也稱為不間斷空格)轉換成常規空格(ASCII 中編碼為0x20)

    -- convert轉換,trim去除
    select TRIM(convert(0xC2A0 using utf8mb4) FROM p.parts_num);
     
    -- 替換掉字符中的不間斷空格
    select TRIM(REPLACE(p.parts_num, convert(0xC2A0 using utf8mb4), ' '));

    這些特殊空格一般常見于各文本編輯器(word、Excel等,剛好出現問題的業務存在Excel導入數據的場景),想要詳細了解看下面推薦的文章。

    補充:你不知道的空格

    Level1: 半角空格

    歷史最悠久的空格,在1967年,ASCII 規范中被定義。

    空格在 ASCII 中編碼為0x20, 占位符為一個半角字符。在日常英文書寫和代碼編寫中使用。

    Level2: 全角空格

    中文輸入中的空格(標準說法為中日韓表意字符(CJK)中使用的寬空格)。和其他漢字一樣,作為GBK的一個字符,其對應的unicode碼為\u3000.寬

    度是2個半角空格的大小。

    例如:

      先生 孫先生

    Level3: 不間斷空格 ( non-breaking space )

    unicode 為 \u00A0, 在代碼中可能會出現的編碼錯誤(utf8 編碼0xC2 0xA0) 就是它了。

    在Word中,會遇到一個有多個單詞組成的詞組被分割在兩行文字中,這樣很容易讓人看不明白。這時候,不間斷空格就可以上場了。

    輸入不間斷空格,會將不間斷空格連著的單詞在一行展示。

    舉個例子:

    Mysql查詢去空格的方法有哪些

    上面英文使用了不間斷空格,下面沒有使用。所以上面的英文自動在一行展示,而下面沒有。

    在word中輸入不間斷空格的方式為: (Ctrl + Shift + Space)

    除了在word等文本編輯軟件中使用,其實不間斷空格在html 中大量使用。  是html 中最為常見的空格。由于html頁面中,如果有多個連著的半角空格,則空格只會展示一個。而使用  空格,則會顯示占位半個自寬。

    Level4: 零寬度空格 (ZERO WIDTH SPACE)

    零寬度空格有兩種

    • 零寬度空格 unicode 編碼為 \u200B.

    不可見非打印字符。有了半角空格,也有了全角空格,其實還有零寬度空格。因為寬度為零,因此該字符是一個不可見字符。
    這個編碼雖然是不可見的,但是也是非常有用的。它可以替換html中的標簽(軟換行, html5 新增)。

    • 零寬度非中斷空格(ZWNBSP) unicode 編碼為 \u2060 (之前使用\ufeff表示,unicode 3.2 開始 \ufeff 標記unicode文檔的字節序。)
      該空格結合了 non-breaking space 和 零寬度空格的特點。既會自動換行,寬度又是0。

    零寬度空格(軟換行)舉例:

    一行連續的英文編碼:

    <p >phpIsTheBestProgramingLanguageInTheWorld</p>

    而如果在每個可以換行的地方加上 <wbr />, 則可以在標記的最近的地方換行。

    <p >php<wbr />Is<wbr />The<wbr />Best<wbr />Programing<wbr />Language<wbr />In<wbr />The<wbr />World</p>

    Level5: 其他空格字符空格

    雖然已經有半角空格、全角空格,但是上面的空格如果字體變化了,不會隨著字體的變化而變化。

    因此,又有了可以隨著字體的變化而變化的空格,簡單羅列如下:

    在html 的寬度度量中,有一種單位叫em,是按照字體大小定義的,下面的em也是字體的寬度。

    打印字符的空格有很多種,羅列幾個:

    名稱unicode 編碼html 標記特征和用途
    短空格\u2002&ensp;html 中占位半個字
    長空格\u2003&emsp;html 中占位一個字
    1/3em空格\u2004&emsp13;占用1/3個空格
    1/4em空格\u2005&emsp14;占用1/4個空格
    1/6em空格\u2006&emsp14;占用1/6個空格
    數樣間距 (figure space)\u2007&numsp;在等寬字體中,寬度是一個字符的寬度。
    行首前導空格 (punctuation space)\u2008&puncsp;寬度約為 0x20 的寬度。
    瘦弱空格 (thin space)\u2009&thinsp;寬度是 全角打印空格的 1/5 或者 1/6 (寬度不定,法文設置為1/8), 主要用在打印兩個空的引號之間。
    hair space\u200a&hairsp;(瀏覽器目前不支持), 最窄的空格,推薦標準為 (1/10, 1/16)
    narrow no-break space\u202f&nnbsp;和0a 類似,不同語種中不太一樣。
    medium mathematical space\u205f&mediumspace;在格式化數學公式時使用。是 4/18 的 em寬度,例如:"a + b"中,a 和+ 之間應該用 這個空格

    到此,相信大家對“Mysql查詢去空格的方法有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    泰安市| 新兴县| 昔阳县| 西平县| 融水| 抚远县| 涟水县| 徐州市| 九台市| 南京市| 米泉市| 临武县| 永济市| 阿图什市| 普格县| 大洼县| 湄潭县| 郓城县| 墨脱县| 晋城| 平顶山市| 延川县| 辉南县| 丽水市| 天台县| 宜春市| 桃江县| 岑溪市| 临清市| 凤山县| 荆门市| 乐陵市| 霞浦县| 灌南县| 肃南| 澎湖县| 康马县| 河池市| 樟树市| 财经| 五指山市|