powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка по длине строки
4 сообщений из 4, страница 1 из 1
Выборка по длине строки
    #39307036
User2016UA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написать запрос, который выведет таблицу со следующими данными:
- Название
- Название категории
- Количество товаров в категории
- Минимальная цена на товар в категории
- Максимальная цена на товар в категории
- Название товара с наиболее длинным описанием в категории
- Наибольшая длина описания в категории
- Текст самого длинного описания в категории


почти все вроде-бы выполнил, только не могу понять как вывести название с наиболее длинным описанием.


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
CREATE database PRODUCTBASE;
USE PRODUCTBASE;
CREATE TABLE categories (
id int NOT NULL AUTO_INCREMENT,
name varchar(32) NOT NULL,
PRIMARY KEY (id)
) 
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

CREATE TABLE products (
id int NOT NULL AUTO_INCREMENT,
category_id int NOT NULL,
price decimal(10,2) NOT NULL,
name varchar(128) NOT NULL,
description varchar(1024) NOT NULL,
PRIMARY KEY (id)
) 
ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;


INSERT INTO categories(name) VALUES('Холодильники'),('Телевизоры'),('Мобильные телефоны');


INSERT INTO products(category_id, price, name, description) VALUES
(1, 2223, 'Liebherr T 1404', 'Полезный объем: 122 л; Полезный объем морозилки: 14 л
К-во компрессоров: 1 шт.; Размеры (ВхШхГ): 85 x 50.1 x 62 см; Цвет: белый'),
(1, 2910, 'Indesit NBS-20 AA', 'Полезный объем: 341 л; Полезный объем морозилки: 108 л; К-во компрессоров:
1 шт.; Размеры (ВхШхГ): 200 x 60 x 66 см'),
(1, 3490, 'Whirlpool WBE 3114 TS', 'Полезный объем: 307 л; Полезный объем морозилки: 113 л; К-во
компрессоров: 1 шт.; Размеры (ВхШхГ): 175 x 59.5 x 64 см; Цвет: нержавеющая сталь'),
(2, 4520, 'Samsung UE-40EH5007', 'Дисплей: 40 ", 1920×1080; Тюнер: аналоговый, цифровой DVB-T, цифровой
DVB-C, цифровой DVB-T2; Звук: 20 Вт'),
(2, 2355, 'Philips 22PFL4008T/12', 'Дисплей: 22 ", 1920×1080; Тюнер: аналоговый, цифровой DVB-T, цифровой
DVB-C, цифровой DVB-T2; Звук: 8 Вт'),
(2, 3500,'Sony KDL-24W605A Black', 'Дисплей: 24 ", 1366×768; Тюнер: аналоговый, цифровой DVB-T, цифровой
DVB-C, цифровой DVB-T2, цифровой DVB-S, цифровой DVB-S2; Звук: 10 Вт'),
(2, 1959, 'Toshiba 22L1333G', 'Дисплей: 22 ", 1920×1080; Тюнер: аналоговый, цифровой DVB-T, цифровой
DVB-C; Звук: 5 Вт'),
(3, 541, 'Nokia Asha 206 Black', 'Дисплей: 2.4 '', 240x320, TFT; Камера: 1.2 МП; Память: ПЗУ 64 Mб;
Аккумулятор: Li-Ion, 1110 мAч; Корпус: пластик'),
(3, 5165, 'Samsung I9500 Galaxy S 4 Black', 'Дисплей: 5 '', 1920x1080, Super AMOLED; Процессор: Samsung,
ядер 8, 1600 МГц; Камера: 13 МП, вспышка, автофокус; Память: ПЗУ 16384 Mб, ОЗУ 2048 Мб; Аккумулятор:
Li-Ion, 2600 мAч; Корпус: пластик');

select name from categories where categories.id=1;

select products.name ,products.category_id, categories.id, categories.name from products
inner join categories on products.category_id=categories.id where categories.id=1;

select  categories.name ,count(*) from products join categories on products.category_id=1 and categories.id=1;

select max(products.price) as MAX_PRICE  from products join categories on products.category_id=1 and categories.id=1;

select min(products.price) as MIN_PRICE from products join categories on products.category_id=1 and categories.id=1;

select  max(char_length(products.description)) as MAX_LENGTH from products join categories on products.category_id=1 and categories.id=1;

select  max(products.description) as MAX_DESCRIPTION from products join categories on products.category_id=1 and categories.id=1;



Можно ли в MySQL Workbench комментировать запросы;
И правильно ли я выполнил запросы?
...
Рейтинг: 0 / 0
Выборка по длине строки
    #39307038
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
User2016UAтолько не могу понять как вывести название с наиболее длинным описанием.Если таковых товаров более одного, то как надо поступить? Вывести какой-то один или вывести их все?
...
Рейтинг: 0 / 0
Выборка по длине строки
    #39307039
User2016UA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если в колонке есть два товара с одинаковой длинной и при этом длина этих описаний наибольшая в колонке то вывести два. Но там всего три товара в категории, так что я думаю должен быть какой-то один товар с самым длинным описанием.
...
Рейтинг: 0 / 0
Выборка по длине строки
    #39307042
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
User2016UA- Название товара с наиболее длинным описанием в категорииUser2016UAто вывести дваТогда так:
Код: sql
1.
2.
3.
4.
SELECT name
FROM products
WHERE category_id=... 
  AND LENGTH(description) = (SELECT MAX(LENGTH(description)) FROM products WHERE category_id=...)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Выборка по длине строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]