MySQL WHERE資料過濾(二)

2021-08-08 03:03:34 字數 2020 閱讀 4147

為了更強的過濾控制,mysql允許給出多個where子句。這些子句可以兩種方式組合:以and子句的方式或or子句的方式使用。

1.and操作符

為了不止乙個列進行過濾,可使用and操作符給where子句附加條件。下面給出示例:

mysql>

select prod_id, prod_price, prod_name

-> from products

->

where vend_id=

1003

and prod_price<=

10;

2.or操作符

or操作符和and操作符不同,它只是mysql檢索匹配任何一條件的行,請看下面示例:

mysql>

select prod_name, prod_price

-> from products

->

where vend_id=

1002

or vend_id=

1003;

注意:在and和or一起組合使用時要注意計算次序的問題,由於and的優先順序高,所以先會考慮and操作符,然後再考慮or操作符,請看下面示例:

mysql>

select prod_name, prod_price

-> from products

->

where vend_id=

1002

or vend_id=

1003

and prod_price>=

10;

如果上述指令是想得到vend_id為1002或者1003,且**大於等於10美元的所有產品。那麼根據執行結果顯然不對,因為先考慮and運算子,再考慮or運算子,故計算次序不是按照指令書寫次序的。可以用括號來修改優先順序,下面為修改過的指令:

mysql>

select prod_name, prod_price

-> from products

->

where (vend_id=

1002

or vend_id=

1003) and prod_price>=

10;

通過用括號修改優先順序變得到了正確的結果。

in操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配。其語法如下:

where 列名 in (條件1, 條件2, ..., 條件n);
舉例說明:

mysql>

select prod_name, prod_price

-> from products

->

where vend_id in (1002, 1003)

->

order

by prod_name;

where子句中not操作符有且僅有乙個功能,那就是否定它之後所跟的任何條件。舉例說明:

mysql>

select vend_id, prod_name, prod_price

-> from products

->

where

not (vend_id=

1002

or vend_id=

1003);

上述指令列出除了vend_id為1002和1003之外的所有產品。下面指令可以實現相同的功能:

mysql>

select vend_id, prod_name, prod_price

-> from products

->

where vend_id not

in(1002, 1003);

MySQL WHERE資料過濾(一)

在select語句中,可以對資料根據where子句指定的搜尋條件進行過濾。where子句在表名 from子句 之後給出,其格式如下所示 select 列名 from 表名 where 搜尋條件 where子句位置 where子句應位於表名 from子句 之後。在同時使用order by子句時,ord...

MySQL WHERE搜尋資料

我們在使用資料庫提取資料的時候一般都不會整行都需要,往往是提取符合條件的子集資料。因此有必要增加乙個搜尋條件來精確查詢我們需要的資料。where將會幫助我們搜尋資料.我們先來看一下由產品名稱和 組成的資料 如果我現在想要買名為fuses的產品,我想快速知道它的 我們可以 如果我想購買的價位在10 3...

MySQL WHERE 篩選資料

select field1,field2 from table name where field1 value1 and or field2 value2運算子支援 in link regexp 邏輯操作支援 and or 且 and 優先順序大於 or 結構 create table user i...