Запросы

Выборка уникальных значений. Оператор DISTINCT

Последнее обновление: 16.05.2018

С помощью оператора DISTINCT можно выбрать уникальные данные по определенным столбцам.

К примеру, разные товары могут иметь одних и тех же производителей, и, допустим, у нас следующая таблица товаров:

USE productsdb;

DROP TABLE IF EXISTS Products;

CREATE TABLE Products
(
    Id INT AUTO_INCREMENT PRIMARY KEY,
    ProductName VARCHAR(30) NOT NULL,
    Manufacturer VARCHAR(20) NOT NULL,
    ProductCount INT DEFAULT 0,
    Price DECIMAL NOT NULL
);
INSERT INTO Products  (ProductName, Manufacturer, ProductCount, Price)
VALUES
('iPhone X', 'Apple', 3, 71000),
('iPhone 8', 'Apple', 3, 56000),
('Galaxy S9', 'Samsung', 6, 56000),
('Galaxy S8', 'Samsung', 2, 46000),
('Honor 10', 'Huawei', 3, 26000);

Выберем всех производителей:

SELECT Manufacturer FROM Products;
Выборка уникальных значений в MySQL

Однако при таком запросе производители повторяются. Теперь применим оператор DISTINCT для выборки уникальных значений:

SELECT DISTINCT Manufacturer FROM Products;
Оператор DISTINCT в MySQL

Также мы можем задавать выборку уникальных значений по нескольким столбцам:

SELECT DISTINCT Manufacturer, ProductCount FROM Products;

В данном случае для выборки используются столбцы Manufacturer и ProductCount. Из пяти строк только для двух строк эти столбцы имеют повторяющиеся значения. Поэтому в выборке будет 4 строки:

Оператор DISTINCT и несколько столбцов в MySQL
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850