用 DISTINCT 選擇

SELECT 之後的 DISTINCT 子句消除了結果集中的重複行。

CREATE TABLE `car`
(   `car_id` INT UNSIGNED NOT NULL PRIMARY KEY, 
    `name` VARCHAR(20), 
    `price` DECIMAL(8,2)
);

INSERT INTO CAR (`car_id`, `name`, `price`) VALUES (1, 'Audi A1', '20000');
INSERT INTO CAR (`car_id`, `name`, `price`) VALUES (2, 'Audi A1', '15000');
INSERT INTO CAR (`car_id`, `name`, `price`) VALUES (3, 'Audi A2', '40000');
INSERT INTO CAR (`car_id`, `name`, `price`) VALUES (4, 'Audi A2', '40000');

SELECT DISTINCT `name`, `price` FROM CAR;
+---------+----------+
| `name`    | price    |
+---------+----------+
| Audi A1 | 20000.00 |
| Audi A1 | 15000.00 |
| Audi A2 | 40000.00 |
+---------+----------+

DISTINCT 適用於所有列以提供結果,而不是單個列。後者通常是對新 SQL 開發人員的誤解。簡而言之,結果集的行級別的重要性是重要的,而不是列級別的明顯性。要想象這一點,請在上面的結果集中檢視 Audi A1

對於 MySQL 的更高版本,DISTINCTORDER BY 一起使用會產生影響。ONLY_FULL_GROUP_BY 的設定開始起作用,如下面的 MySQL 手冊頁中所示,名為 MySQL Handling of GROUP BY