msProducts | Не срабатывает условия в &where

Дорый день!
Наворотил вот такое условие для &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)
Возвращает конечно пустой результат, но не ошибку.
Алексей
09 ноября 2015, 12:09
modx.pro
845
0

Комментарии: 2

Василий Наумкин
09 ноября 2015, 15:10
+1
Посмотри на подсветку своего кода в первом блоке — сразу увидишь проблему с одинаковыми двойными кавычками.

Так что всё просто, условие не парсится как JSON и не попадает в сниппет.
    Алексей
    09 ноября 2015, 15:13
    0
    Действительно.
    Спасибо большое.
    Видимо надо больше отдыхать.
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    2