mysql in子句 MySQL IN 子句

2021-10-17 12:08:09 字數 1307 閱讀 6313

可以使用 in 子句代替許多 or 條件。

要想理解 in 子句,還以表 employee_tbl 為例,它的所有記錄如下所示:

mysql> select * from employee_tbl;

| id | name | work_date | daily_typing_pages |

| 1 | john | 2007-01-24 | 250 |

| 2 | ram | 2007-05-27 | 220 |

| 3 | jack | 2007-05-06 | 170 |

| 3 | jack | 2007-04-06 | 100 |

| 4 | jill | 2007-04-06 | 220 |

| 5 | zara | 2007-06-06 | 300 |

| 5 | zara | 2007-02-06 | 350 |

7 rows in set (0.00 sec)

現在,我們希望根據以上**,顯示出 daily_typing_pages 等於250、220和170這三個值的記錄。利用 or 條件實現如下:

mysql>select * from employee_tbl

->where daily_typing_pages= 250 or

->daily_typing_pages= 220 or daily_typing_pages= 170;

| id | name | work_date | daily_typing_pages |

| 1 | john | 2007-01-24 | 250 |

| 2 | ram | 2007-05-27 | 220 |

| 3 | jack | 2007-05-06 | 170 |

| 4 | jill | 2007-04-06 | 220 |

4 rows in set (0.02 sec)

同樣的實現也可以用 in子句 來完成:

mysql> select * from employee_tbl

-> where daily_typing_pages in ( 250, 220, 170 );

| id | name | work_date | daily_typing_pages |

| 1 | john | 2007-01-24 | 250 |

| 2 | ram | 2007-05-27 | 220 |

| 3 | jack | 2007-05-06 | 170 |

| 4 | jill | 2007-04-06 | 220 |

4 rows in set (0.02 sec)

Mysql In子句刪除

經測試mysql in子句中只能放一級子查詢,後來改用虛表,測試可用,記錄下 begin create table temptable1 as select zpwas.stock id from zen products with attributes stock as zpwas where z...

MySql in子句 效率低下優化

背景 更新一張表中的某些記錄值,更新條件來自另一張含有200多萬記錄的表,效率極其低下,耗時高達幾分鐘。update clear res set candelete 0 where resid in select distinct resourceid from att attentionresul...

LINQ let子句 join子句

1.let子句 let子句用於在linq表示式中儲存子表示式的計算結果,既let子句建立乙個範圍變數來儲存結果,變數被建立後,不能修改或把其他表示式的結果重新賦值給它。此範圍變數可以在後續的linq中使用 static void main string args new custom var que...