查詢條件
1、使用 WHERE 子句從數據表中讀取數據的通用語法:
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
- 查詢語句中你可以使用一個或者多個表,表之間使用逗號**,** 分割,并使用WHERE語句來設定查詢條件。
- 你可以在 WHERE 子句中指定任何條件。
- 你可以使用 AND 或者 OR 指定一個或多個條件。
- WHERE 子句可以運用于 SQL 的 SELECT 、DELETE 或者 UPDATE 命令。
- WHERE 子句類似于程序語言中的 if 條件,根據 MySQL 表中的字段值來讀取指定的數據。
以下為操作符列表,可用于 WHERE 子句中。
下表中實例假定 A 為 10, B 為 20
操作符 | 描述 | 實例 |
---|---|---|
= | 等號,檢測兩個值是否相等,如果相等返回true | (A = B) 返回false。 |
<>, != | 不等于,檢測兩個值是否相等,如果不相等返回true | (A != B) 返回 true。 |
> | 大于號,檢測左邊的值是否大于右邊的值, 如果左邊的值大于右邊的值返回true | (A > B) 返回false。 |
< | 小于號,檢測左邊的值是否小于右邊的值, 如果左邊的值小于右邊的值返回true | (A < B) 返回 true。 |
>= | 大于等于號,檢測左邊的值是否大于或等于右邊的值, 如果左邊的值大于或等于右邊的值返回true | (A >= B) 返回false。 |
<= | 小于等于號,檢測左邊的值是否小于或等于右邊的值, 如果左邊的值小于或等于右邊的值返回true | (A <= B) 返回 true。 |
如果我們想在 MySQL 數據表中讀取指定的數據,WHERE 子句是非常有用的。
使用主鍵來作為 WHERE 子句的條件查詢是非常快速的。
如果給定的條件在表中沒有任何匹配的記錄,那么查詢不會返回任何數據。
2、使用 LIKE 子句從數據表中讀取數據的通用語法:
SELECT field1, field2,...fieldN
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'
- 你可以在 WHERE 子句中指定任何條件。
- 你可以在 WHERE 子句中使用LIKE子句。
- 你可以使用LIKE子句代替等號 =。
- LIKE 通常與 % 一同使用,類似于一個元字符的搜索。
- 你可以使用 AND 或者 OR 指定一個或多個條件。
- 你可以在 DELETE 或 UPDATE 命令中使用 WHERE…LIKE 子句來指定條件。
3、MySQL UNION 操作符
MySQL UNION 操作符用于連接兩個以上的 SELECT 語句的結果組合到一個結果集合中。多個 SELECT 語句會刪除重復的數據。
MySQL UNION 操作符語法格式:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
- expression1, expression2, … expression_n: 要檢索的列。
- tables: 要檢索的數據表。
- WHERE conditions: 可選, 檢索條件。
- DISTINCT: 可選,刪除結果集中重復的數據。默認情況下 UNION 操作符已經刪除了重復數據,所以 DISTINCT 修飾符對結果沒啥影響。
- ALL: 可選,返回所有結果集,包含重復數據。
4、SELECT 語句使用 ORDER BY 子句將查詢數據排序后再返回數據:
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默認 ASC]], [field2...] [ASC [DESC][默認 ASC]]
- 你可以使用任何字段來作為排序的條件,從而返回排序后的查詢結果。
- 你可以設定多個字段來排序。
- 你可以使用 ASC 或 DESC 關鍵字來設置查詢結果是按升序或降序排列。 默認情況下,它是按升序排列。
- 你可以添加 WHERE…LIKE 子句來設置條件。
5、GROUP BY 語句根據一個或多個列對結果集進行分組。
在分組的列上我們可以使用 COUNT, SUM, AVG,等函數。
GROUP BY 語法
SELECT column_name, function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;