У меня есть эта строковая манипуляция
select product,
CAST((LENGTH(currencies) - LENGTH(REPLACE(currencies, '*', ''))) / LENGTH('*') AS UNSIGNED) AS currencies_count
from MY_TABLE
для подсчета "валют" в одном поле в этой таблице
product currencies
----------- --------------
prod_name_1 *usd*cad*euro*
prod_name_2 *usd*cad*
prod_name_3 *usd*cad*euro*
prod_name_4
prod_name_5 *usd*
Манипуляции со строками возвращают "+1" для всех результатов(например: prod_name_1, 4 валюты вместо 3).Это связано с тем, что внешний компонент хранит флажки данных таким непоследовательным образом (* usd * cad * euro * вместо * usd * cad * euro).
Дело в том, что я не могу изменить метод храненияэтого компонента.Есть способ подсчитать точное количество валют в поле, игнорируя последнее «пустое» значение после последнего разделителя «*»?Как я могу изменить мои манипуляции со строками?
С ума сойти, любая помощь будет очень и очень признательна!