msProducts | Не срабатывает условия в &where
Дорый день!
Наворотил вот такое условие для &where:
И полчуется вот такой запрос:
TV max_load иммет value вида «10+=+30», тоесть дипазон с разделителем +=+;
Задача: чтобы max_load проверить на вхождение в диапазон 10-20, как тут указано.
Ошибок в запросе вроде не нашел.
Для лишний проверки написал пробный подобный запрос в БД напрямую:
Наворотил вот такое условие для &where:
["mass >= CAST(10 AS UNSIGNED) AND mass <= CAST(258 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(max_load, "+=+", -1) AS UNSIGNED) >= CAST(212 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(max_load, "+=+", 1) AS UNSIGNED) <= CAST(212 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(max_load, "+=+", -1) AS UNSIGNED) >= CAST(23123123 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(max_load, "+=+", 1) AS UNSIGNED) <= CAST(23123123 AS UNSIGNED)"]
И он не срабатывает, то есть в запрос эти условия не уходят. И полчуется вот такой запрос:
SELECT SQL_CALC_FOUND_ROWS
....
WHERE ( `msProduct`.`class_key` = 'msProduct' AND `msProduct`.`parent` IN (12) AND `msProduct`.`published` = 1 AND `msProduct`.`deleted` = 0 )
GROUP BY msProduct.id ORDER BY msProduct.id ASC LIMIT 10
TV max_load иммет value вида «10+=+30», тоесть дипазон с разделителем +=+;
Задача: чтобы max_load проверить на вхождение в диапазон 10-20, как тут указано.
Ошибок в запросе вроде не нашел.
Для лишний проверки написал пробный подобный запрос в БД напрямую:
SELECT * FROM `modx_site_tmplvar_contentvalues` WHERE
value >= CAST(10 AS UNSIGNED)
AND value <= CAST(500 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(value, ";", -2) AS UNSIGNED) >= CAST(20 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(value, ";", 1) AS UNSIGNED) <= CAST(10 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(value, ";", -2) AS UNSIGNED) >= CAST(20 AS UNSIGNED)
AND CAST(SUBSTRING_INDEX(value, ";", 1) AS UNSIGNED) <= CAST(10 AS UNSIGNED)
Возвращает конечно пустой результат, но не ошибку. Комментарии: 2
Посмотри на подсветку своего кода в первом блоке — сразу увидишь проблему с одинаковыми двойными кавычками.
Так что всё просто, условие не парсится как JSON и не попадает в сниппет.
Так что всё просто, условие не парсится как JSON и не попадает в сниппет.
Действительно.
Спасибо большое.
Видимо надо больше отдыхать.
Спасибо большое.
Видимо надо больше отдыхать.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.