在SQL結構化查詢語言中
LIKE語句有著至關重要的作用
LIKE語句的語法格式是
select * from 表名 where 字段名 like 對應值(子串)
它主要是針對字符型字段的
它的作用是在一個字符型字段列中檢索包含對應子串的
假設有一個數據庫中有個表table
在table
中有兩個字段
分別是name和sex二者全是字符型數據
現在我們要在姓名字段中查詢以
張
字開頭的記錄
語句如下
select * from table
where name like
張*
如果要查詢以
張
結尾的記錄
則語句如下
select * from table
where name like
*張
這裡用到了通配符
*
可以說
like語句是和通配符分不開的
下面我們就詳細介紹一下通配符
續上
假設表table
中有以下記錄
name sex
張小明 男
李明天 男
李a天 女
王
五 男
王清五 男
下面我們來舉例說明一下
例
查詢name字段中包含有
明
字的
select * from table
where name like
%明%
例
查詢name字段中以
李
字開頭
select * from table
where name like
李*
例
查詢name字段中含有數字的
select * from table
where name like
%[
]%
例
查詢name字段中含有小寫字母的
select * from table
where name like
%[a
z]%
例
查詢name字段中不含有數字的
select * from table
where name like
%[!
]%
以上例子能列出什麼值來顯而易見
但在這裡
我們著重要說明的是通配符
*
與
%
的區別
很多朋友會問
為什麼我在以上查詢時有個別的表示所有字符的時候用
%
而不用
*
?先看看下面的例子能分別出現什麼結果
select * from table
where name like
*明*
select * from table
where name like
%明%
大家會看到
前一條語句列出來的是所有的記錄
而後一條記錄列出來的是name字段中含有
明
的記錄
所以說
當我們作字符型字段包含一個子串的查詢時最好采用
%
而不用
*
用
*
的時候只在開頭或者只在結尾時
而不能兩端全由
*
代替任意字符的情況下
以上是本人對like語句的淺見
不足之處請朋友們指正
From:http://tw.wingwit.com/Article/program/Oracle/201311/17332.html