SQL 使用IN 操作符SQL語句時遇見的坑

2021-10-09 11:43:41 字數 807 閱讀 7569

問題描述:

一次偶然發現,一樣的**,發現in() 括號裡的內容資料只有一行的時候,查詢非常慢。

in()語句括號裡只有一行資料時查詢效果如下:

優化後:

in()語句括號裡有多行資料查詢效果如下:

經對比,in語句括號裡只有一行資料的和多行資料相比,查詢速度是0.313s 和80.662s。顯然查詢速度相差80多秒,前端查詢起來讓人煩惱。

解決方法:

為了優化這個問題,注意不能讓in()括號語句裡的資料為一行。

至此,排除故障。查詢時間為0.2~0.4s非常順暢,體驗效果佳。

ps:以下是in的正確語法,in (value1,value2,…)注意value值不能為單一,否則在做多表查詢時會出現效率慢的問題。

in 操作符

允許我們在 where 子句中規定多個值。

sql in 語法

select column_name(s)

from table_name

where column_name in

(value1,value2,..

.)

SQL 語句中的union操作符

前端時間,用到了union操作符,週末有時間總結下,w3c手冊內容如下 sql union操作符 union操作符用於合併兩個或多個select語句的結果集。注意 union內部select語句必須有相同數量的列。列也必須有相同的資料型別。最近在做乙個微博使用者搜尋模組,根據使用者名稱搜尋到符合條件...

SQL常用操作符

in 操作符 in 操作符允許您在where 子句中規定多個值 eg1 select from websites where name in google facebook in 與 的異同 eg1 select from websites where name google between 操作符...

SQL之union操作符

菜鳥教程 sqlunion操作符合併兩個或多個 select 語句的結果 union 結果集中的列名總是等於union 中第乙個 select 語句中的列名 不允許重複 union select column name s from table1 union select column name s...