SQL中的等號(=)、IN、LIKE三者的比較

SQL中的等號(=)、IN、LIKE三者的比較。

SQL 中等號、IN、LIKE 三者都可以用來進行數據匹配 。但三者並不相同。

等號(=):是用來查找與單個值匹配的所有數據;

IN :是 用來查找 與多個值匹配的所有數據;

LIKE:用來查找與一個模式匹配的所有數據。

一、等號(=)

確切知道所要查找的內容,且爲單一值時,可以使用等號運算符來進行數據比較。等號運算符中可以使用字符串、日期或數字。例如,比如想要查詢字段爲name,值爲“MTbaby”的工作人員,可以使用等號進行匹配:

SELECT name, sex, id, salary FROM table_name WHERE name='MTbaby';

查詢結果:

name sex id salary
MTbaby 1001 3000.00

二、IN

當確切知道所要查找的內容,且爲多個值時,可以使用 IN 子句來進行數據比較。IN 子句中也可以使用數字、字符串或日期。例如,查找名爲“MTbaby”、“abboter”、“小明”的工作人員,可以使用 IN 子句進行匹配:

SELECT name, sex, id, salary FROM table_name WHERE name IN ("MTbaby","abboter","小明");

查詢結果:

name sex id salary
MTbaby 1001 3000.00
abboter 1002 5000.00
小明 1003 4000.00

另外:如果a.depart=”” or a.depart=”“…這個鏈接條件很多的話, 會存在效率問題, 此時IN的優勢會體現出來; 查看下執行計劃能夠更詳細的分析出你想要的結果;

三、LIKE 子句

  當無法確切知道所要查找的值,而是知道所要查找的數據符合的模式時,可以使用LIKE 子句進行匹配。一般來說,LIKE 子句僅在字符串類型時使用,有些系統也支持在日期數據中使用,但對數字類型數據是不能使用 LIKE 子句的。例如,查找名字中都包含漢字“明”的工作人員,可以使用 LIKE 子句進行匹配:

SELECT name, sex, id, salary FROM table_name WHERE name LIKE  '%明%';    

查詢結果:

name sex id salary
劉明 1005 3000.00
王明親 1007 5000.00

需要注意的是,通配符只有在 LIKE 子句中使用時才具有通配符的含義。不在 LIKE子句中使用時, 就不具有特殊的含義,僅表示其本身的值。

如果我把上述LIKE語句改成下面這個:

SELECT name, sex, id, salary FROM table_name WHERE name = '%明%';

則查詢結果爲空:

name sex id salary
發佈了241 篇原創文章 · 獲贊 417 · 訪問量 82萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章