SELECT [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [HIGH_PRIORITY]
[DISTINCT | DISTINCTROW | ALL] select_list
[INTO {OUTFILE | DUMPFILE} 'file_name' export_options]
[FROM table_references
[WHERE where_definition]
[GROUP BY col_name, ...]
[HAVING where_definition]
[ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]
[LIMIT [offset,] rows]
[PROCEDURE procedure_name]]
SELECT select_list
可直接進行運算:SELECT 1+1 → 2
可賦值給變數,PHP 中可借用 MySQL 函數運算後賦值給 PHP 變數。
| 關鍵字 | 功能 | 使用建議 |
|---|---|---|
| STRAIGHT_JOIN | 強制按 FROM 順序聯表,優化器順序不佳時使用 | 謹慎使用,多數情況不需要 |
| SQL_SMALL_RESULT | 告知優化器結果集小,用臨時表而非排序 | 配合 GROUP BY/DISTINCT 使用 |
| SQL_BIG_RESULT | 告知優化器結果集大,用排序而非臨時表 | 配合 GROUP BY/DISTINCT 使用 |
| HIGH_PRIORITY | 提升 SELECT 優先級高於 UPDATE | 極少數緊急查詢使用 |
DISTINCT / DISTINCTROW:結果集僅保留非重複行,NULL 視為相等(多個 NULL 僅保留一個)ALL:預設行為,無實際作用export_options 語法同 LOAD DATA INFILE 的 FIELDS/LINES 子句OUTFILE:正常匯出,含欄位/行結束符DUMPFILE:僅寫入單行原始資料,無任何分隔符絕大多數場景下,四個擴展關鍵字(STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、HIGH_PRIORITY)皆**不需要使用**,優化器通常已足夠智慧。