最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql查詢?nèi)タ崭竦亩喾N方法匯總

 更新時(shí)間:2023年04月25日 10:52:34   作者:Conquer_El  
SQL查詢語句中空格是用來分隔關(guān)鍵字、表名、列名等的,然而空格也會(huì)影響查詢效率,因?yàn)椴樵冋Z句中的空格越多,查詢的速度就越慢,下面這篇文章主要給大家介紹了關(guān)于Mysql查詢?nèi)タ崭竦亩喾N方法,需要的朋友可以參考下

一、背景

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

二、方法

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

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

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

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

select
	p.parts_num as "零件號(hào)(包含首尾各3個(gè)空格)",
	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";

結(jié)果:

(2)ltrim()去除左空格

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

結(jié)果:

(3)rtrim()去除右空格

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

結(jié)果:

2、replace()函數(shù)

語法:replace(object,search,replace)

(1)替換字段中指定字符為新字符

select
	p.parts_num as "零件號(hào)(包含首尾各3個(gè)空格)",
	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";

結(jié)果:

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

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

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

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

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

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

這些特殊空格一般常見于各文本編輯器(word、Excel等,剛好出現(xiàn)問題的業(yè)務(wù)存在Excel導(dǎo)入數(shù)據(jù)的場景),想要詳細(xì)了解看下面推薦的文章。

補(bǔ)充:你不知道的空格

Level1: 半角空格

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

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

Level2: 全角空格

中文輸入中的空格(標(biāo)準(zhǔn)說法為中日韓表意字符(CJK)中使用的寬空格)。和其他漢字一樣,作為GBK的一個(gè)字符,其對應(yīng)的unicode碼為\u3000.寬

度是2個(gè)半角空格的大小。

例如:

  先生 孫先生 

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

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

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

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

舉個(gè)例子:

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

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

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

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

零寬度空格有兩種

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

不可見非打印字符。有了半角空格,也有了全角空格,其實(shí)還有零寬度空格。因?yàn)閷挾葹榱?,因此該字符是一個(gè)不可見字符。
這個(gè)編碼雖然是不可見的,但是也是非常有用的。它可以替換html中的標(biāo)簽(軟換行, html5 新增)。

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

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

一行連續(xù)的英文編碼:

<p style="font-size:100px;">phpIsTheBestProgramingLanguageInTheWorld</p>

而如果在每個(gè)可以換行的地方加上 <wbr />, 則可以在標(biāo)記的最近的地方換行。

<p style="font-size:100px;">php<wbr />Is<wbr />The<wbr />Best<wbr />Programing<wbr />Language<wbr />In<wbr />The<wbr />World</p>

Level5: 其他空格字符空格

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

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

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

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

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

總結(jié) 

到此這篇關(guān)于Mysql查詢?nèi)タ崭竦奈恼戮徒榻B到這了,更多相關(guān)Mysql查詢?nèi)タ崭駜?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • mysql 5.7.9 winx64在windows上安裝遇到的問題

    mysql 5.7.9 winx64在windows上安裝遇到的問題

    mysql5.7.9版本以上在windwos上安裝時(shí)會(huì)遇到無法啟動(dòng)但是沒有任何報(bào)錯(cuò)的問題,怎么回事呢?接下來通過本文給大家介紹mysql 5.7.9 winx64在windows上安裝遇到的問題及解決方法,需要的朋友可以參考下
    2016-10-10
  • MySQL exists 和in 詳解及區(qū)別

    MySQL exists 和in 詳解及區(qū)別

    本文章向大家介紹MySQL exists 和in 使用方法以及他們之間的區(qū)別,需要的朋友可以參考下
    2017-01-01
  • MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問題解決

    MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問題解決

    本文主要介紹了MySQL報(bào)錯(cuò)sql_mode=only_full_group_by的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2025-02-02
  • 解決mysql 組合AND和OR帶來的問題

    解決mysql 組合AND和OR帶來的問題

    這篇文章主要介紹了解決mysql 組合AND和OR帶來的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 使用sysbench來測試MySQL性能的詳細(xì)教程

    使用sysbench來測試MySQL性能的詳細(xì)教程

    這篇文章主要介紹了使用sysbench來測試MySQL性能的詳細(xì)教程,包括介紹了從sysbench的編譯安裝到初始化測試庫環(huán)境等一系列操作,需要的朋友可以參考下
    2015-05-05
  • MySQL中create table as 與like的區(qū)別分析

    MySQL中create table as 與like的區(qū)別分析

    這篇文章主要介紹了MySQL中create table as 與like的區(qū)別,結(jié)合實(shí)例分析了二者在使用中的具體區(qū)別與主要用途,需要的朋友可以參考下
    2016-01-01
  • 徹底刪除MySQL步驟介紹

    徹底刪除MySQL步驟介紹

    大家好,本篇文章主要講的是徹底刪除MySQL步驟介紹,感興趣的趕緊來看看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • 詳細(xì)解讀MySQL中的權(quán)限

    詳細(xì)解讀MySQL中的權(quán)限

    這篇文章主要介紹了MySQL中的權(quán)限,包括各個(gè)權(quán)限所能操作的事務(wù)以及操作權(quán)限的一些常用命令語句,需要的朋友可以參考下
    2015-05-05
  • 最新MySQL高級(jí)SQL語句大全

    最新MySQL高級(jí)SQL語句大全

    這篇文章主要介紹了MySQL高級(jí)SQL語句,主要包括常用查詢知識(shí)order by按關(guān)鍵字排序的sql語句,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • 詳解MySQL數(shù)據(jù)庫insert和update語句

    詳解MySQL數(shù)據(jù)庫insert和update語句

    用于操作數(shù)據(jù)庫的SQL一般分為兩種,一種是查詢語句,也就是我們所說的SELECT語句,另外一種就是更新語句,也叫做數(shù)據(jù)操作語句。接下來通過本文給大家介紹MySQL數(shù)據(jù)庫insert和update語句,需要的朋友一起學(xué)習(xí)吧
    2016-04-04

最新評論

楚雄市| 泰兴市| 秀山| 额敏县| 洛浦县| 石楼县| 奇台县| 凌海市| 隆回县| 商南县| 元谋县| 安图县| 苏尼特右旗| 门头沟区| 龙门县| 凤翔县| 霍林郭勒市| 浦城县| 长沙县| 江城| 抚州市| 通山县| 股票| 新河县| 阳江市| 连城县| 通化市| 南部县| 论坛| 兴和县| 休宁县| 洮南市| 福鼎市| 上林县| 延津县| 泰和县| 日照市| 翼城县| 岢岚县| 深泽县| 宣化县|