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

一文帶你了解如何用MySQL通配符實(shí)現(xiàn)過濾功能

 更新時(shí)間:2023年07月18日 09:55:28   作者:M malloc  
本文章將介紹什么是通配符、如何使用通配符以及怎樣使用LIKE操作符進(jìn)行通配搜索,以便對(duì)數(shù)據(jù)進(jìn)行復(fù)雜過濾,感興趣的小伙伴跟著小編一起來學(xué)習(xí)吧

LIKE操作符

通配符(wildcard)

通配符 (wildcard) 用來匹配值的一部分的特殊字符

搜索模式(search pattern)

搜索模式(search pattern) 由字面值、通配符或兩者組合構(gòu)成的搜索條件。

深入分析

通配符本身實(shí)際是SQL的WHERE子中有特殊含義的字符,SQL支持幾種通配符。

為在搜索子句中使用通配符,必須使用LIKE操作符。LIKE指示MySQL后跟的搜索模式利用通配符匹配而不是直接相等匹配進(jìn)行比較。

謂詞

謂詞操作符何時(shí)不是操作符?答案是在它作為謂詞(predicate)時(shí)。從技術(shù)上說,LIKE是謂詞而不是操作符。雖然最終的結(jié)果是相同的,但應(yīng)該對(duì)此術(shù)語有所了解,以免在SQL文檔中遇到此術(shù)語時(shí)不知道

百分號(hào)(%)通配符

提示

最常使用的通配符是百分號(hào)(%)。在搜索串中,%表示任何字符出現(xiàn)任意次數(shù)。例如,為了找出所有以詞jet起頭的產(chǎn)品,可使用以下SELECT語句:

輸入

SELECT prod_id,prod_name FROM products
	WHERE prod_name LIKE 'jet%';

輸出

分析

此例子使用了搜索模式 ‘jet%’。在執(zhí)行這條子句時(shí),將檢索任意以jet起頭的詞。%告訴MySQL接受jet之后的任意字符,不管它有多少字符。

注意區(qū)分大小寫

區(qū)分大小寫 根據(jù)MySQL的配置方式,搜索可以是區(qū)分大小寫的。如果區(qū)分大小寫,'jet%'與JetPack 1000將不匹配

例子精講

通配符可在搜索模式中任意位置使用,并且可以使用多個(gè)通配符下面的例子使用兩個(gè)通配符,它們位于模式的兩端:

輸入

SELECT prod_id,prod_name FROM products
	WHERE prod_name LIKE 'anvil%';

輸出

分析

搜索模式%anvil%表示匹配任何位置包含文本anvil的值,而不論它之前或之后出現(xiàn)什么字符。

通配符也可以出現(xiàn)在搜索模式的中間,雖然這樣做不太有用。下面的例子找出以s起頭以e結(jié)尾的所有產(chǎn)品:

輸入

SELECT prod_name FROM products
	WHERE prod_name LIKE 's%e';

分析

重要的是要注意到,除了一個(gè)或多個(gè)字符外,還能匹配0個(gè)字符。%代表搜索模式中給定位置的0個(gè)、1個(gè)或多個(gè)字符

注意尾空格

注意尾空格 尾空格可能會(huì)干擾通配符匹配。例如,在保存詞anvil時(shí),如果它后面有一個(gè)或多個(gè)空格,則子句WHERE prod_name LIKE ‘%anvil’ 將不會(huì)匹配它們,因?yàn)樵谧詈蟮?后有多余的字符。解決這個(gè)問題的一個(gè)簡(jiǎn)單的辦法是在搜索模式最后附加一個(gè)%。一個(gè)更好的辦法是使用函數(shù)(在后面的章節(jié)會(huì)介紹)去掉首尾空格

注意NULL

注意NULL 雖然似乎%通配符可以匹配任何東西,但有一個(gè)例外,即NULL。即使是WHERE prod_name LIKE%也不能匹配用值NULL作為產(chǎn)品名的行

下劃線(_)通配符

概要

另一個(gè)有用的通配符是下劃線(_)。下劃線的用途與%一樣,但下劃線只匹配單個(gè)字符而不是多個(gè)字符。

舉例分析

輸入

SELECT prod_id, prod_name FROM products
	WHERE prod_name LIKE '_ ton anvil';

輸出

分析

此WHERE子句中的搜索模式給出了后面跟有文本的兩個(gè)通配符。結(jié)果只顯示匹配搜索模式的行:第一行中下劃線匹配1,第二行中匹配2。.5 ton anvil產(chǎn)品沒有匹配,因?yàn)樗阉髂J揭笃ヅ鋬蓚€(gè)通配符而不是一個(gè)。對(duì)照一下,下面的SELECT語句使用%通配符,

返回三行產(chǎn)品:

SELECT prod_id,prod_name FROM products
	WHERE prod_name LIKE '% ton anvil';

輸出

注意

與%能匹配0個(gè)字符不一樣, 總是匹配一個(gè)字符,不能多也不能少。

理論概述

  • 不要過度使用通配符。如果其他操作符能達(dá)到相同的目的,應(yīng)該使用其他操作符。
  • 在確實(shí)需要使用通配符時(shí),除非絕對(duì)有必要,否則不要把它們用在搜索模式的開始處。把通配符置于搜索模式的開始處,搜索起來是最慢的。
  • 仔細(xì)注意通配符的位置。如果放錯(cuò)地方,可能不會(huì)返回想要的數(shù)據(jù)

如何鞏固學(xué)習(xí)

提示:在學(xué)習(xí)的過程中,我們需要先自行進(jìn)行思考,而不是一遇到不會(huì)的就放棄思考直接看答案,如果最后遇到真的不會(huì)的題目,我們可以適當(dāng)?shù)倪M(jìn)行觀看答案,看自己的思路是否正確,在作出正確的判斷

本文小結(jié)

本文章介紹了什么是通配符以及如何在WHERE子句中使用SQL通配符并且還說明了通配符應(yīng)該細(xì)心使用,不要過度使用。

到此這篇關(guān)于一文帶你了解如何用MySQL通配符實(shí)現(xiàn)過濾功能的文章就介紹到這了,更多相關(guān)MySQL通配符過濾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 21個(gè)MySQL索引優(yōu)化實(shí)戰(zhàn)技巧分享

    21個(gè)MySQL索引優(yōu)化實(shí)戰(zhàn)技巧分享

    MySQL索引優(yōu)化是提升數(shù)據(jù)庫(kù)性能的關(guān)鍵手段,一個(gè)合理的索引設(shè)計(jì)和使用策略,往往能將查詢速度提升幾十倍甚至上百倍,本文總結(jié)了21個(gè)MySQL索引優(yōu)化的實(shí)戰(zhàn)技巧,有需要的可以了解下
    2025-05-05
  • mysql5.7.21啟動(dòng)異常的修復(fù)方法

    mysql5.7.21啟動(dòng)異常的修復(fù)方法

    這篇文章主要為大家詳細(xì)介紹了mysql5.7.21啟動(dòng)異常的修復(fù)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • mysql?timestamp字段規(guī)范使用詳情

    mysql?timestamp字段規(guī)范使用詳情

    這篇文章主要介紹了mysql?timestamp字段規(guī)范使用詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • linux服務(wù)器清空MySQL的history歷史記錄 刪除mysql操作記錄

    linux服務(wù)器清空MySQL的history歷史記錄 刪除mysql操作記錄

    mysql歷史記錄上可能留下了很多敏感信息,比如密碼什么的,需及時(shí)清空歷史記錄,下面分享一下inux服務(wù)器清空MySQL的history歷史記錄的方法
    2014-01-01
  • 如何實(shí)現(xiàn)MySQL的索引

    如何實(shí)現(xiàn)MySQL的索引

    這篇文章主要介紹了如何實(shí)現(xiàn)MySQL的索引,MySQL中索引分三類,有B+樹索引、Hash索引和全文索引,下面我們一起來看看MySQL索引的具體實(shí)現(xiàn),需要的小伙伴可以參考一下
    2022-01-01
  • 基于Linux的mysql主從配置全過程記錄

    基于Linux的mysql主從配置全過程記錄

    這篇文章主要給大家介紹了基于Linux的mysql主從配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • MySQL數(shù)據(jù)庫(kù)表(table)操作

    MySQL數(shù)據(jù)庫(kù)表(table)操作

    本文主要介紹了MySQL數(shù)據(jù)庫(kù)表的操作,包括創(chuàng)建表、查看表、修改表、修改表的列和表名稱、刪除表和列,每一步都有具體的操作步驟和示例,幫助讀者更好地理解和操作,感興趣的朋友跟隨小編一起看看吧
    2026-04-04
  • MYSQL中 char 和 varchar的區(qū)別

    MYSQL中 char 和 varchar的區(qū)別

    這篇文章主要介紹了MYSQL中 char 和 varchar的區(qū)別,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • MySQL基礎(chǔ)教程之IN的用法詳解

    MySQL基礎(chǔ)教程之IN的用法詳解

    這篇文章主要介紹了MySQL基礎(chǔ)教程之IN的用法詳解的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • MySQL主從復(fù)制之GTID模式詳細(xì)介紹?

    MySQL主從復(fù)制之GTID模式詳細(xì)介紹?

    這篇文章主要介紹了MySQL主從復(fù)制之GTID模式,GTID的復(fù)制方式,它由UUID和事務(wù)ID兩個(gè)部分組成,具有GTID事務(wù)是全局唯一性的,并且一個(gè)事務(wù)對(duì)應(yīng)一個(gè)GTID值、一個(gè)GTID值在同一個(gè)MySQL實(shí)例上只會(huì)執(zhí)行一次等特點(diǎn),想了解更多的小伙伴可以參考下面詳細(xì)內(nèi)容,希望對(duì)你有所幫助
    2022-02-02

最新評(píng)論

桃园县| 安吉县| 丹棱县| 梁山县| 象山县| 贵定县| 林西县| 韶山市| 自贡市| 沙湾县| 郑州市| 红安县| 中江县| 遂平县| 右玉县| 乌拉特中旗| 京山县| 腾冲县| 谢通门县| 肇东市| 阿克陶县| 内丘县| 余庆县| 屯门区| 万源市| 三亚市| 房山区| 淮北市| 阿瓦提县| 钦州市| 临沧市| 江油市| 尚义县| 大竹县| 临潭县| 朝阳县| 岑巩县| 沛县| 樟树市| 磐安县| 宜宾县|