@vetsmen

Как составить условие на несколько столбцов?

Есть подобная структура:
title | price1 | price2 | price3
---------------------------------
t1 24 32 55
t2 25 85 38

Как составить запрос по выборке, чтобы в условии фигурировало условие price (от 30 до 60 к примеру) и выборка была подобной:
title: t1, price2: 32
title: t1, price3: 55
title: t2, price3: 38

То есть чтобы в выборке участвовала только одна стоимость. Если в строке удовлетворяют несколько стоимостей, нужно чтобы она разбивалась на несколько строк в результате (как показано с примеров t1)
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 2
@kester
SW Dev
Тут напрашивается создание нескольких запросов и объединение их через UNION
SELECT CONCAT('title: ', title, ', price1: ', price1)
FROM my_table
WHERE price1 BETWEEN 30 AND 60
UNION 
SELECT CONCAT('title: ', title, ', price2: ', price2)
FROM my_table
WHERE price2 BETWEEN 30 AND 60
UNION 
SELECT CONCAT('title: ', title, ', price3: ', price3)
FROM my_table
WHERE price3 BETWEEN 30 AND 60
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
(SELECT `title`, `price1`
  WHERE ...)
UNION (SELECT `title`, `price2`
  WHERE ...)
UNION (SELECT `title`, `price3`
  WHERE ...)

И вторая колонка результата будет иметь название `price1`. Разных названий у одной колонки быть не может.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы