Задать вопрос
@Teran123

MySQL как реализовать вывод одних и тех же строк?

Доброй ночи.

Есть таблица:
--------------------------
id | num
--------------------------
1 | one,two,three
2 | one
3 | three
4 | two
--------------------------

Как из неё выбрать и отсортировать по кол-ву повторений строки, в которых есть 1 или несколько значений num?

Например:
Нужно выбрать из таблицы строки, в которых присутствует значение 1 и/или 2 и отсортировать их по количеству значений, найденных в условии(даже не знаю как по-другому объяснить).

Т.е вывести должно примерно такое:
--------------------------
id | num
--------------------------
1 | one,two,three (ибо тут встречается и one и two)
2 | one
4 | two
--------------------------

Заранее, спасибо!
  • Вопрос задан
  • 2270 просмотров
Подписаться 2 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
@zifanchuck
Возможно в вашем случае лучше сделать маппинг, а не хранить все через запятую.
Это плохое решение, но может поможет:
SELECT *, COUNT(*) AS count FROM (
	SELECT * FROM `table` WHERE `value` LIKE "%one%"
	UNION ALL
	SELECT * FROM `table` WHERE `value` LIKE "%two%"
) AS t
GROUP BY t.id
ORDER BY count DESC
Ответ написан
Ваш ответ на вопрос

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

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