婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL全面瓦解之查詢的過濾條件詳解

MySQL全面瓦解之查詢的過濾條件詳解

熱門標簽:廣東人工電話機器人 芒果電話機器人自動化 日照旅游地圖標注 申請外呼電話線路 湖南人工外呼系統多少錢 百度地圖圖標標注中心 石家莊電商外呼系統 南通自動外呼系統軟件 信陽穩定外呼系統運營商

概述

在實際的業務場景應用中,我們經常要根據業務條件獲取并篩選出我們的目標數據。這個過程我們稱之為數據查詢的過濾。而過濾過程使用的各種條件(比如日期時間、用戶、狀態)是我們獲取精準數據的必要步驟,

這樣才能得到我們期望的結果。所以本章我們來學習MySQL中查詢過濾條件的各種用法。

關系運算

關系運算就是where語句后跟上一個或者n個條件,滿足where后面條件的數據會被返回,反之不滿足的就會被過濾掉。operators指的是運算符 ,有如下幾種情況:


運算符 說明
= 等于
> 或者 != 不等于
> 大于
>= 大于等于
小于
= 小于等于

關系運算基本的語法格式如下:

 select cname1,cname2,... from tname where cname operators cval 

等于=

查詢出 列和后面的值嚴格相等的數據,非值類型的需要對后面值加上引號,值類型的不需要。

語法格式如下:

select cname1,cname2,... from tname where cname = cval;
mysql> select * from user2;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+----------+-----+
3 rows in set

mysql> select * from user2 where name='helen';
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 2 | helen | 20 | quanzhou | 0 |
+----+-------+-----+----------+-----+
1 row in set

mysql> select * from user2 where age=21;
+----+-------+-----+---------+-----+
| id | name | age | address | sex |
+----+-------+-----+---------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+---------+-----+
2 rows in set

不等于(>、!=)

不等于有兩種寫法,一種是>,另一種是!=,意思一樣,可隨意切換使用,但是 > 先于 != 出現,所以看很多以前的例子,> 出現頻率比較高,可移植性更強,推薦使用。

不等于的目的是查詢出與條件不符和結果,格式如下:

select cname1,cname2,... from tname where cname > cval;
或
select cname1,cname2,... from tname where cname != cval;
mysql> select * from user2;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+----------+-----+
3 rows in set

mysql> select * from user2 where age>20;
+----+-------+-----+---------+-----+
| id | name | age | address | sex |
+----+-------+-----+---------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+---------+-----+
2 rows in set

大于小于(> )

一般用于數值或者日期、時間類型的比較,格式如下:

select cname1,cname2,... from tname where cname > cval;

select cname1,cname2,... from tname where cname  cval;

select cname1,cname2,... from tname where cname >= cval;

select cname1,cname2,... from tname where cname = cval;
mysql> select * from user2 where age>20;
+----+-------+-----+---------+-----+
| id | name | age | address | sex |
+----+-------+-----+---------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+---------+-----+
2 rows in set

mysql> select * from user2 where age>=20;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+----------+-----+
3 rows in set

mysql> select * from user2 where age21;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 2 | helen | 20 | quanzhou | 0 |
+----+-------+-----+----------+-----+
1 row in set

mysql> select * from user2 where age=21;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+----------+-----+
3 rows in set

邏輯運算  

運算符 說明
AND 多個條件都成立
OR 多個條件中滿足一個
NOT 對條件進行取非操作

AND(且)

當需要多個條件進行數據過濾的時候,使用這種方式,and的每個表達式都是要成立,過濾出來的數據就是用戶需要的。

下面過濾出年齡和性別兩個條件都成立的數據,語法格式如下:

select cname1,cname2,... from tname where cname1 operators cval1 and cname2 operators cval2 
mysql> select * from user2;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
+----+-------+-----+----------+-----+
4 rows in set

mysql> select * from user2 where age >20 and sex=1;
+----+-------+-----+---------+-----+
| id | name | age | address | sex |
+----+-------+-----+---------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 4 | weng | 33 | guizhou | 1 |
+----+-------+-----+---------+-----+
2 rows in set

OR(或)

當多個條件中只要滿足一個條件即進行數據過濾。

下面條件過濾出年齡大于21歲和小于21歲的數據,語法格式如下:

select cname1,cname2,... from tname where cname1 operators cval1 or cname2 operators cval2 
mysql> select * from user2;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
+----+-------+-----+----------+-----+
4 rows in set

mysql> select * from user2 where age>21 or age21;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 2 | helen | 20 | quanzhou | 0 |
| 4 | weng | 33 | guizhou | 1 |
+----+-------+-----+----------+-----+
2 rows in set

NOT(取非)

對某個滿足的條件進行取反,過濾出來的數據就是用戶需要的。

下面過濾不屬于年齡大于20的數據,語法格式如下:

select cname1,cname2,... from tname where not(cname operators cval) 
mysql> select * from user2;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
+----+-------+-----+----------+-----+
4 rows in set

mysql> select * from user2 where not(age>20);
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 2 | helen | 20 | quanzhou | 0 |
+----+-------+-----+----------+-----+
1 row in set

模糊匹配

就像我們上面的那個用戶表信息表(包含名稱、年齡、地址、性別),當我們要查詢名稱為s開頭的用戶時,就可以用到 like 關鍵字了,他用以模糊匹配數據。

語法格式如下,pattern中可以包含通配符,有兩種。%:表示匹配任意一個或n個字符; _:表示匹配任意一個字符。

select cname1,cname2,... from tname where cname like pattern; 

%的使用

mysql> select * from user2;
+----+--------+-----+----------+-----+
| id | name | age | address | sex |
+----+--------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+----------+-----+
5 rows in set

mysql> select * from user2 where name like 's%';
+----+--------+-----+---------+-----+
| id | name | age | address | sex |
+----+--------+-----+---------+-----+
| 3 | sol | 21 | xiamen | 0 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+---------+-----+
2 rows in set

_的使用

mysql> select * from user2;
+----+--------+-----+----------+-----+
| id | name | age | address | sex |
+----+--------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+----------+-----+
5 rows in set

mysql> select * from user2 where name like 's_l';
+----+------+-----+---------+-----+
| id | name | age | address | sex |
+----+------+-----+---------+-----+
| 3 | sol | 21 | xiamen | 0 |
+----+------+-----+---------+-----+
1 row in set

注意點

1、不要過度使用模糊匹配得通配符。如果其他操作符能達到相同的目的,應該使用其他操作符

2、對大體量的表進行模糊匹配的時候盡量不要以%開頭,比如 like '%username',這樣會執行掃表,效率較慢。盡量明確模糊查找的開頭部分,比如 like 'brand%',會先定位到brand開頭的數據,效率高很多。

范圍值檢查

BETWEEN AND(區間查詢)

操作符 BETWEEN … AND 會選取介于兩個值之間的數據范圍,這些值可以是數值、文本或者日期,屬于一個閉區間查詢。

and 的左邊val1 和 右邊 val2 分別表示兩個臨界值,等同于數學公式[val1,val2] ,屬于這兩個區間的數據會被過濾出來(>=val1 和 =val2),所以語法格式如下:

 selec cname1,cname2,... from tname where cname between val1 and val2;
 等同于
 selec cname1,cname2,... from tname where cname >= val1 and cname = val2;

查詢年齡在[21,25]之間的數據:

mysql> select * from user2;
+----+--------+-----+----------+-----+
| id | name | age | address | sex |
+----+--------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+----------+-----+
5 rows in set

mysql> select * from user2 where age between 21 and 25;
+----+--------+-----+---------+-----+
| id | name | age | address | sex |
+----+--------+-----+---------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 3 | sol | 21 | xiamen | 0 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+---------+-----+
3 rows in set

mysql> select * from user2 where age >= 21 and age = 25;
+----+--------+-----+---------+-----+
| id | name | age | address | sex |
+----+--------+-----+---------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 3 | sol | 21 | xiamen | 0 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+---------+-----+
3 rows in set

IN(包含查詢)

按照上面得數據,如果我們想查出居住地位于福州和廈門得用戶數據,應該使用 IN操作符,因為 IN 操作符允許我們在 WHERE 子句中指定多個值,符合這些值中得某一項,既滿足條件返回數據。

語法格式如下,in 后面列表的值類型必須一致或兼容,且不支持通配符:

select cname1,cname2,... from tname where cname in (val1,val2,...);
mysql> select * from user2;
+----+--------+-----+----------+-----+
| id | name | age | address | sex |
+----+--------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+----------+-----+
5 rows in set

mysql> select * from user2 where address in('fuzhou','xiamen');
+----+-------+-----+---------+-----+
| id | name | age | address | sex |
+----+-------+-----+---------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 3 | sol | 21 | xiamen | 0 |
+----+-------+-----+---------+-----+
2 rows in set

NOT IN(對包含查詢取反)

我們上面已經學習過了not得用戶,對not后面執行得表達式進行取反得操作,測試下:

mysql> select * from user2;
+----+--------+-----+----------+-----+
| id | name | age | address | sex |
+----+--------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+----------+-----+
5 rows in set

mysql> select * from user2 where address not in('fuzhou','quanzhou','xiamen');
+----+--------+-----+---------+-----+
| id | name | age | address | sex |
+----+--------+-----+---------+-----+
| 4 | weng | 33 | guizhou | 1 |
| 5 | selina | 25 | taiwang | 0 |
+----+--------+-----+---------+-----+
2 rows in set

空值檢查

IS NULL/IS NOT NULL

判斷是否為空,語法格式如下,這邊注意的是,對值為null的數據,各種比較運算符、like、between and、in、not in查詢都不起作用,只有is null 能夠過濾出來。

 select cname1,cname2,... from tname where cname is null;
 或者
 select cname1,cname2,... from tname where cname is not null;
mysql> select * from user2 where address is null;
+----+--------+-----+---------+-----+
| id | name | age | address | sex |
+----+--------+-----+---------+-----+
| 5 | selina | 25 | NULL | 0 |
+----+--------+-----+---------+-----+
1 row in set

mysql> select * from user2 where address is not null;
+----+-------+-----+----------+-----+
| id | name | age | address | sex |
+----+-------+-----+----------+-----+
| 1 | brand | 21 | fuzhou | 1 |
| 2 | helen | 20 | quanzhou | 0 |
| 3 | sol | 21 | xiamen | 0 |
| 4 | weng | 33 | guizhou | 1 |
+----+-------+-----+----------+-----+
4 rows in set

有一種關鍵字 =>,可以包含對null值得判斷,但是目前用的比較少了,有興趣可以去查查,這邊不贅述。

總結

1、like表達式中的%匹配一個到多個任意字符,_匹配一個任意字符

2、空值查詢需要使用IS NULL或者IS NOT NULL,其他查詢運算符對NULL值無效。即使%通配符可以匹配任何東西,也不能匹配值NULL的數據。

3、建議創建表的時候,表字段不設置空,給字段一個default 默認值。

4、MySQL支持使用NOT對IN 、BETWEEN 和EXISTS子句取反 。

到此這篇關于MySQL全面瓦解之查詢的過濾條件的文章就介紹到這了,更多相關MySQL查詢的過濾條件內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • mysql查詢條件not in 和 in的區別及原因說明
  • mysql條件查詢and or使用方法及優先級實例分析
  • 詳解Mysql查詢條件中字符串尾部有空格也能匹配上的問題
  • MySQL查詢條件常見用法詳解
  • MySQL查詢條件中in會用到索引嗎
  • mysql 帶多個條件的查詢方式

標簽:惠州 牡丹江 合肥 天津 阿里 呼和浩特 沈陽 公主嶺

巨人網絡通訊聲明:本文標題《MySQL全面瓦解之查詢的過濾條件詳解》,本文關鍵詞  MySQL,全面,瓦解,之,查詢,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL全面瓦解之查詢的過濾條件詳解》相關的同類信息!
  • 本頁收集關于MySQL全面瓦解之查詢的過濾條件詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    26uuu精品一区二区| 亚洲精品伦理在线| 亚洲免费在线看| 麻豆91在线播放免费| av影院午夜一区| 日韩一级片网址| 亚洲一区二区欧美| 97se亚洲国产综合自在线观| 欧美成人精品二区三区99精品| 一区二区三区在线视频免费| 懂色av一区二区三区免费看| 制服丝袜亚洲色图| 亚洲日本va在线观看| 久久99精品国产麻豆不卡| 欧美日韩国产欧美日美国产精品| 亚洲国产成人一区二区三区| 久久狠狠亚洲综合| 欧美日韩成人综合在线一区二区| 亚洲精品美腿丝袜| 91丨porny丨最新| 国产精品色在线观看| 国产乱子伦视频一区二区三区| 制服丝袜日韩国产| 视频一区视频二区在线观看| 在线免费不卡视频| 一区二区三区**美女毛片| 99久久久无码国产精品| 国产精品私人影院| 成人网在线播放| 国产午夜精品久久久久久久 | 亚洲精品高清在线| 91视频一区二区三区| 综合电影一区二区三区| 成人小视频免费观看| 亚洲国产精品成人综合| 国产精品一区不卡| 中文字幕av一区 二区| 波多野结衣欧美| 综合久久一区二区三区| 在线看一区二区| 香蕉影视欧美成人| 精品欧美一区二区三区精品久久 | 91丨九色丨国产丨porny| 亚洲欧洲国产日本综合| 99v久久综合狠狠综合久久| 国产精品久久久久一区| 成人高清av在线| 亚洲嫩草精品久久| 欧美无砖砖区免费| 免费欧美在线视频| 久久久久久久久久美女| eeuss国产一区二区三区| 亚洲一区在线观看免费| 91精品国产免费久久综合| 久久se精品一区二区| 国产精品欧美久久久久无广告| 91影视在线播放| 日韩精品五月天| 久久久久久久网| 色综合久久中文字幕| 性做久久久久久免费观看欧美| 日韩美女视频在线| 不卡的av网站| 日韩中文字幕区一区有砖一区 | 国产精品自拍毛片| 亚洲人成精品久久久久久| 正在播放亚洲一区| 成人性视频免费网站| 亚洲成av人片在线观看无码| 欧美一区二区三区白人| 国产999精品久久| 亚洲亚洲精品在线观看| 久久精品欧美日韩| 欧美无砖砖区免费| 国产不卡视频一区| 日韩和欧美一区二区三区| 中文字幕在线视频一区| 91精品国产91综合久久蜜臀| 91亚洲精品乱码久久久久久蜜桃 | 日本91福利区| 亚洲视频在线观看一区| 欧美大片顶级少妇| 色久优优欧美色久优优| 国产美女精品人人做人人爽| 夜夜嗨av一区二区三区| 国产三级久久久| 欧美一级黄色录像| 欧美三电影在线| 99久久夜色精品国产网站| 国产一区二区视频在线| 日韩精品一级二级 | 国模无码大尺度一区二区三区| 亚洲午夜av在线| 国产精品久久久久久久岛一牛影视 | 欧美成人官网二区| 欧美人妇做爰xxxⅹ性高电影 | 亚洲人成伊人成综合网小说| 精品国产髙清在线看国产毛片| 在线观看日韩av先锋影音电影院| 粉嫩av一区二区三区在线播放| 国内久久婷婷综合| 美女视频黄 久久| 婷婷综合五月天| 一区二区三区在线视频观看58| 国产精品无圣光一区二区| 久久亚洲综合av| 日韩写真欧美这视频| 欧美绝品在线观看成人午夜影视| 日本韩国精品在线| 色综合久久中文字幕综合网| 99久久免费精品| 色域天天综合网| 在线观看视频一区| 欧美亚洲动漫另类| 欧美中文一区二区三区| 欧美性三三影院| 欧美三级电影网| 在线综合视频播放| 日韩午夜电影在线观看| 精品久久国产字幕高潮| 久久综合久久鬼色中文字| 国产亚洲欧美色| 国产欧美va欧美不卡在线| 国产精品成人午夜| 亚洲视频每日更新| 亚洲综合无码一区二区| 日韩激情一二三区| 国产一区二区三区电影在线观看| 国产精品系列在线观看| 成人亚洲一区二区一| 日本韩国一区二区三区视频| 欧美在线观看视频在线| 欧美久久久久久久久| 精品人在线二区三区| 国产精品午夜春色av| 亚洲精品欧美综合四区| 日韩中文字幕1| 国产在线播放一区| 成人avav影音| 欧美久久一区二区| 久久―日本道色综合久久| 国产精品久久久久影院色老大| 亚洲一区二区三区四区在线| 日本中文一区二区三区| 久久99精品一区二区三区| 97se亚洲国产综合自在线观| 欧美探花视频资源| 久久久久久久久久看片| 亚洲裸体在线观看| 国产在线精品一区在线观看麻豆| 激情另类小说区图片区视频区| 99视频在线精品| 欧美一区二区三区男人的天堂| 日本一区二区视频在线观看| 首页欧美精品中文字幕| 不卡视频在线观看| 日韩丝袜美女视频| 一区二区三区欧美久久| 精久久久久久久久久久| 欧美在线观看视频一区二区三区| 欧美精品一区二区三区在线 | 久久精品噜噜噜成人av农村| 91年精品国产| 国产日韩精品视频一区| 午夜欧美一区二区三区在线播放| 懂色av噜噜一区二区三区av| 欧美一区二区在线播放| 一二三四社区欧美黄| 成人妖精视频yjsp地址| 欧美哺乳videos| 亚洲一线二线三线久久久| av午夜一区麻豆| 亚洲精品一区二区三区在线观看 | 一区二区三区在线不卡| 成人性视频免费网站| 日韩一级二级三级| 天天av天天翘天天综合网色鬼国产 | 亚洲五码中文字幕| 99精品久久只有精品| 精品成人一区二区三区四区| 青娱乐精品在线视频| 欧美日韩国产综合久久| 尤物在线观看一区| 99国产欧美另类久久久精品| 国产日韩av一区二区| 国产乱人伦精品一区二区在线观看| 欧美一区二区免费| 午夜精彩视频在线观看不卡| 欧美性色aⅴ视频一区日韩精品| 日韩美女精品在线| a亚洲天堂av| 亚洲欧洲成人自拍| 99免费精品视频| 中文字幕一区二区三区不卡| 不卡av电影在线播放| 亚洲欧美日韩系列| 色婷婷香蕉在线一区二区| 亚洲黄色性网站| 欧美日韩一区二区三区四区| 午夜精品久久久久久久|