@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
--------------------------

Заранее, спасибо!
  • Вопрос задан
  • 2269 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы