在where子句中,like操作符我們經常會用到,比如,當我們只知道一個人的名字,卻不知道他的姓,去查詢的他的相關信息時,就需要用到like操作符。
在like操作符,常用到的通配符是"%",在搜索串中,%表示任何字符出現的任意次數
以部門表為例
查詢部門名稱中以"es"結尾的部門編號,和部門名稱。那么sql就是:
select * from departments where dept_name like '%es';
那么查詢結果為:
如果查詢部門名稱中含有"es"字符的部門編號,和部門名稱。那么sql就是
select * from departments where dept_name like '%es%';
查詢結果為
以上兩個例子區別在於,一個是以"es"結尾,那么,因為"%"匹配任意數量字符,所以在"es"前面添加上"%"即可。另一個是包含"es"就要考慮到"es"出現的位置可能在最前面,中間,和末尾,三種情況,所以在"es"前面和后面都需要添加上"%"。
另一個通配符就是下划線"_",下划線"_"的用途和"%"一樣,但是下划線"_"只能匹配單個字符而不是多個字符
比如查詢以"es"結尾的五個字母組成的部門名稱的部門信息
那么sql就需要寫成:
select * from departments where dept_name like '___es';
需要寫三個下划線"_",查詢結果為:
通配符的使用還是很方便的,但是這種方便性是以犧牲性能為代價的,使用通配符查詢時要比准確查詢花費的時間更長,所以不要過度使用通配符。