MySQL/MariaDB Как удалить пробелы в строке - Функция TRIM
Коллеги всем привет.
В сегодняшней статье мы поговорим о том как можно удалять пробелы в начале и конце строки при выполнении запросов до базы данных MySQL и MariaDB.
Когда пользователь заполняет какую либо форму на вашем сайте и потом эту форму отправляет, то он может случайно где-то указать лишние пробелы, либо специально это сделать. Задача разработчика отслеживать такие вещи и на уровне языка программирования, убирать эти пробелы в строках перед тем как отправить данные в базу данных. Но может случиться так что разработчик забудет либо не захочет тратить лишнее время на проверку таких мелочей и пропустит данные у которых есть пробелы в начале либо в конце строки, и потом на этапе вставки этих данных в базу данных могут возникнуть проблемы.
Если вы или разработчик не в курсе как реализовать удаления лишних пробелов в строках на уровне языка программирования, то на помощь нам могут прийти три функции которые есть в базе данных MySQL или MariaDB. Функции называются RTRIM(), TRIM() и LTRIM(), они прекрасно справляются с такими задачи. Мы их рассмотрим все по очереди.
Функция RTRIM().
Синтаксис функции:
RTRIM(string);
Функция в качестве параметра принимает строку и возвращает строку без пробелов в конце строки.
Функция RTRIM() используется, для того чтобы удалить все пробелы в конце строки.
sql> SELECT RTRIM('Hellow World ') as rtrim_function;
Как видим в примере я добавил в конец строки очень много пробелов, и в результате функция RTRIM() нам эти пробелы удалила.
Функция LTRIM().
Синтаксис функции:
LTRIM(string);
Функция в качестве параметра принимает строку и возвращает строку без пробелов в начале строки.
Функция LTRIM() используется, для того чтобы удалить все пробелы в начале строки.
sql> SELECT LTRIM(' Hellow World') as ltrim_function;
Как видим в этом примере я добавил в начало строки много пробелов, и в результате функция LTRIM() нам эти пробелы успешно удалила.
Функция TRIM().
Синтаксис функции:
TRIM([{BOTH|LEADING|TRAILING} [removed_string]] FROM string);
- LEADING - Удаляет символ из начала строки.
- BOTH - Удаляет символ из начала и конца строки.
- TRAILING - Удаляет символ из конца строки.
BOTH - является параметром по умолчанию. Если в функцию никаких параметров не передать, то функция по умолчанию будет удалять только пробелы из начала и конца строки.
Эта функция универсальная, она может удалять не только проблемы из строки, но и символы которые нам не нужны.
В первом примере мы хотим чтобы функция удалила нам лишние пробелы в начале и конце строки.
sql> SELECT TRIM(' Hellow World ') as trim_function;
Результат отличный! Пробелов нет!
Следующим примером я хочу чтобы из начала строки Hellow World функция удалил символ H.
sql> SELECT TRIM(LEADING 'H' FROM 'Hellow World');
Как видим в результате символа H не стало.
Следующим примером я хочу чтобы из конца строки Hellow функция удалил символ w.
sql> SELECT TRIM(TRAILING 'w' FROM 'Hellow');
Всем спасибо, я надеюсь что вам моя статья хоть чем-то помогла.