很多時候使用者會需要看某些條件之下的資料,因此取出的資料就必須過濾一下了,
可以試想一下使用者可能會提出哪些條件呢?這邊就列出幾個條件當作例子。
= | 等於 |
---|---|
<> | 不等於 |
≠ | 不等於 |
IS | 是 |
NOT IS | 不是 |
> | 大於 |
≥ | 大於等於 |
< | 小於 |
≤ | 小於等於 |
BETWEEN | 之間 |
IN | 找出符合 |
NOT IN | 找出不符合 |
老闆想算成本的時候,可能會想找出花錢花的很兇的保養費是哪些探針卡,
所以找出保養費用大於等於(≥)300美金的資料,好好解釋這些探針卡費用吧!
SELECT *
FROM probe_card
WHERE cost >= 300;
生產線上的班長,找出不是生產中的探針卡,
再來判斷要不要保養探針卡、或是進行產品調機。
SELECT *
FROM probe_card
WHERE is_running NOT IS TRUE;
要判斷的條件如果是複合式的,那就要用到AND運算子,
找出正在生產V100AS產品的探針卡包含兩個條件:
SELECT *
FROM probe_card
WHERE product_name = 'V100AS' AND is_running IS TRUE;
找出2019年所建檔的探針卡資料,要找出2019年的資料就等同於
找出2019年1月1日到2019年12月31日之間的資料。
SELECT *
FROM probe_card
WHERE date_created BETWEEN '2019-01-01' AND '2019-12-31';
找出維修費最貴的前三名,要取出這樣的資料,要先排序而且要由小到大,
然後再告訴資料庫要取出幾筆資料。
SELECT *
FROM probe_card
ORDER BY cost DESC
LIMIT 3;
列出有哪幾種產品,DISTINCT 欄位會把重覆的值給去掉,
最後資料只會取出不同的值,所以獲得我們要的內容。
SELECT DISTINCT product_name
FROM probe_card;
除了等於之外,有時候想要抓的條件不只一個,
例如希望把產品V100A跟V100AS都抓出來,可以使用IN。
SELECT *
FROM probe_card
WHERE product_name IN ('V100A','V100AS');