MySQL: TRIM & REPLACE

Если что-то можно обработать в базе данных (привести в нужный формат или сократить выборку даных), лучше это сделать именно там. Так мы уменьшаем количество переборов и обработок в коде.

Вырезаем данные

Например, есть задача: достать со столбца Channels айди объектов. Хранятся они в следующем виде:

,object|3,object|5,object|104398,

Строку выше можно подлучить в результате запроса:

SELECT Channels FROM object_5 where oo_id = 184;

Модифицируем наш запрос, используя функции TRIM и REPLACE:

SELECT TRIM(BOTH ',' FROM REPLACE(Channels, 'object|', '')) FROM object_5 where oo_id = 184;

Результатом данного запроса будет красивая строка: 3,5,104398. Все именно так, как мы хотели.

Из интересного, TRIM можно использовать следующим образом:

  • TRIM(string)
  • TRIM(LEADING s FROM string)
  • TRIM(BOTH s FROM string)
  • TRIM(TRAILING s FROM string)