sql驅動 德 sql語句中的萬用字元

2021-10-13 08:47:44 字數 1080 閱讀 5014

一、簡介

mysql中常用的萬用字元有:萬用字元解釋

%匹配乙個或多個字元

_匹配乙個字元

[string]匹配string中任意乙個字元

[^string]不匹配string中任意乙個字元

[!string]不匹配string中任意乙個字元

二、"%"的使用

在mysql的查詢或是授權的時候,我們通常會用到mysql的萬用字元。

有乙個分類表category如下:

取出所有test開頭的分類,則需要使用萬用字元%select * from category name 'test%';

二、"_"的使用

比如查詢test1_0開頭,後面跟著乙個字元的分類,查詢語句如下:select * from category where name like "test1_0_";

備註:在like語句裡面,不能隨便使用 _,如果資料表中存在如下記錄,上訴查詢就會失敗,如下:insert into category (`name`)values('test1a0b');

在執行上訴查詢,結果為:

怎麼解決這個問題,只能轉移字串中的「_」字元,如果涉及到匹配查詢,其次名字的分隔符盡量不要使用下劃線"_"。上面查詢語句,可以改為:select * from category where name like "test1\_0_";

三、正則匹配

如果在上面表中,再插入如下記錄insert into category (`name`)values('test1_0a');

再次進行上訴查詢,會返回

如果,我僅僅需要以數字結尾的分類,那麼上面的查詢語句就不能滿足條件。這個時候,就需要使用正則匹配了。select * from category where name regexp "test1_0[1-9]";

mysql的正規表示式,和其他語言差不多,常用的字元如下:

.匹配任何單個的字元

[abc]匹配abc中任意乙個字元

[a-z]匹配任何小寫字母

[a-z]匹配任何大寫字母

[0-9] 匹配任何數字

^test代表以某個test開頭

test$代表以test結

sql查詢語句中

sql查詢語句中select t.status,t.rowid from person t where t.status 2,此處查詢的是status不等於2的記錄,並過濾掉status為null的記錄。注意 此處不管status是integer型別還是long型別,都會過濾掉status為null...

SQL語句中 ( ) 含義

表示外連線。條件關聯時,一般只列出表中滿足連線條件的資料。如果條件的一邊出現 則可列出該表中在條件另一側的資料為空的那些記錄。比如兩個表 員工表和工資表。員工表中有總經理 a b c四條記錄,工資表中只有a b c三人的記錄。如果寫如下語句 select 姓名,工資 from 員工表,工資表 whe...

Sql語句中的DDL語句

資料庫模式定義語言ddl data definition language 是用於描述資料庫中要儲存的現實世界實體的語言。主要由create 新增 alter 修改 drop 刪除 和 truncate 刪除 四個關鍵字完成。create database 資料庫名 建立乙個資料庫 create d...