powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / HAVIN COUNT и WHEN THEN в MYSQL нужна помощь
1 сообщений из 1, страница 1 из 1
HAVIN COUNT и WHEN THEN в MYSQL нужна помощь
    #39216207
social_project
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую. Помогите пожалуйста с WHEN и HAVING кодом.

В общем суть такова, это поисковый фильтр, и пока человек не выберет несколько возможныж значений, все работает верно, но когда есть процедура OR в условиях, то count может вернуть не 3 а только 1 вхождение например, ну т.е. тогда увеличивать число HAVING count > 1 нельзя. Как тогда сделать что бы в выборке одно условие с OR считалось как 1 в выдаче?


Если не совсем понятно описал то вот пример:
есть товар СМАРТФОН, и значения РАЗМЕР и ЦВЕТ. Если выбран РАЗМЕР 220см, то первая выдача верная и HAVING count > 1 верно. Если выбрать еще цвет, СИНИЙ напрмиер то тоже все ок, HAVING count > 1 снова 1. Но если ставят два цвета "СИНИЙ, ЗЕЛЕНЫЙ" то HAVING count надо ставить уже 2, но тут проблема т.к. тогда покажет куча лишних вхождений т.е. элемент OR тогда я снова делать -1 от финального значения, т.е. HAVING count > 1 но тогда в выдаче бывает каша т.е. берутся уже левые товары в выдаче.

Как-то можно объединить эти элементы по GROUP внутри WHEN или как обойти данную ошибку?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
(SELECT scp.`shop_cat_page_id` , COUNT(*) as count FROM `shop_catalog_page` AS `scp`
   INNER JOIN shop_catalog_page_properties AS scpp ON scpp.shop_catalog_page_properties_producer_extend = scp.shop_cat_page_producer_extend AND scpp.shop_catalog_page_properties_product_id = scp.shop_cat_page_id  AND (
   CASE 
    
     WHEN shop_catalog_page_properties_parentid='748' THEN (  shop_catalog_page_properties_types_value_int='2954'  )
     WHEN shop_catalog_page_properties_parentid='747' THEN (  shop_catalog_page_properties_types_value_int='2694'  OR  shop_catalog_page_properties_types_value_int='2695'  OR  shop_catalog_page_properties_types_value_int='2700'  )
 
   ELSE NULL
   END
  ) 
  WHERE  shop_cat_page_product_type="629"
   
   GROUP BY shop_cat_page_id
   HAVING count > 1
  )
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / HAVIN COUNT и WHEN THEN в MYSQL нужна помощь
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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