MYSQL必知必會(三)

2021-10-07 04:42:13 字數 2084 閱讀 9178

like操作符

萬用字元:用來匹配值得一部分的特殊字元

搜尋模式:由字面值、萬用字元或者兩者組合構成的搜尋條件。

select * from goods where goods_name like '諾基%'
執行這條語句的時候,將檢索任意以『諾基』開頭的產品,%告訴mysql接受『諾基』之後的任意字元,不管它有多少字元

萬用字元可以在搜尋模式中任意位置使用,並且可以使用多個萬用字元,

select * from goods where goods_name like '%基%'

select * from goods where goods_name like '%諾基亞'

注意:尾空格可能干擾萬用字元匹配。例如,在儲存詞』諾基亞『時,如果它後面有乙個或多個空格,則子句where goods_name like '%諾基亞』將不會匹配它們,因為在最後的有多餘的字元,解決的辦法是在後面新增乙個%

下劃線_萬用字元

下劃線的用途與%一樣,但下劃線只匹配單個字元而不是多個字元。

select * from goods where goods_name like '_愛%'

使用萬用字元的技巧

使用萬用字元的代價:萬用字元搜尋的處理一般要比前面討論的其他搜尋所花時間更長。

技巧:.不要過度使用統配符。如果其他操作符能達到相同的目的,應該使用其他操作符。

.在確實需要使用萬用字元時,除非絕對有必要,否則不要把他們用在搜尋模式的開始處。把萬用字元置於搜尋模式的開始處,搜尋起來是最慢的。

正規表示式是用來匹配文字的特殊的串。如果你想從乙個文字檔案中提取**號碼,可以使用正規表示式。如果你想在乙個文字檔案中提取**號碼,可以使用正規表示式。所有種類的程式語言、文字編輯器、作業系統等都支援正規表示式
如下語句檢索的就是goods_name中包含文字『諾基亞』的所有語句。

select * from goods where goods_name regexp '諾基亞'

select * from goods where goods_name like '%諾基亞%'

regexp關鍵字可以在列值內進行匹配,如果被匹配的文字出現在列值**現,regexp將會找到它,相應的行將被返回

為搜尋兩個串之一(符合兩個文字串中的乙個就返回),可以使用「|」,「|」從功能上類似於select語句的or語句,「|」可以多次使用

select * from goods where goods_name regexp '諾基亞|索愛'

匹配幾個字元之一

如果想匹配特定的單一字元,可以使用字元來完成。

如下語句,正規表示式『索愛c[5,7]』匹配的就是『索愛c5』和』索愛c7』這兩個字串

select * from goods where goods_name regexp '索愛c[5,7]'

正規表示式語言由具有特定含義的特殊字元構成。所以需要匹配這些特殊字元時,必須用\\為前導,如'\\.'標識查詢'.','\\['表示查詢'['

1.為了匹配反斜槓』'字元本身,需要使用\\。

2.mysql使用兩個反斜槓,是因為mysql自己解釋乙個,正規表示式解釋另乙個

MySQL必知必會(三)

sql還允許建立子查詢,即巢狀在其他查詢中的查詢。包含子查詢的select語句難以閱讀和除錯,特別是它們較為複雜時更是如此。但是,將子查詢分解為多行並且適當地進行縮排,能極大地簡化子查詢的使用。子查詢的數目沒有限制,不過在實際使用中由於效能的限制,不巢狀太多的子查詢。逐漸增加子查詢來建立查詢。什麼是...

mysql必知必會 mysql必知必會(四)

十四 理解子查詢 1 通過子查詢過濾 這本書在所有的章節都關連到了資料庫表,訂單資料是儲存在兩個表中,orders表儲存著 訂單號碼 顧客id和訂單日期。個人的訂單列表關連著orderitems表,訂單表沒有儲存顧客資訊,它只是儲存著顧客id,這實際的顧客資訊是儲存在customers表中。現在假設...

mysql的必知必會 mysql 必知必會 筆記

好久沒有寫了。1 show columns from table 等同於describe table顯示的是表的結構。而select from table 則顯示的是整個表中插入的資料。2 select distinct c1,c2 from table除非列不相同,否則所有行將被檢索出來,即不能對...