Удалить Emoji в запросе выбора MariaDB

Я пытаюсь удалить смайлики в запросе Select. Я использую MariaDB 10.3.14.

Вот что я придумал до сих пор, но это не работает. Он повторяет всю строку.

SELECT REGEXP_REPLACE("<çşığ_lorem?ipsum?dolor", '/([\x10000-\x10FFFF]+)/g', '')

В фактической строке будут некоторые неанглийские, даже некоторые HTML-теги.

Чего я хочу добиться от этой строки, так это <çşığ_loremipsumdolor.

Как удалить эмодзи из строки с помощью MariaDB 10.3?

Заранее спасибо,

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
4
0
404
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваше регулярное выражение выглядит правильно. Я думаю, что проблема здесь в самой MariaDB. Существует подтвержденная проблема, связанная с основной причиной: МДЭВ-11777.

В качестве уродливого обходного пути вы можете преобразовать текст в utf8 (см. это обсуждение для получения дополнительной информации о том, почему это работает). Это покажет смайлики и другие символы как ?.

После этого вы просто удаляете ?.

Итак, как полный пример:

SELECT REGEXP_REPLACE(convert('<çşığ_lorem?ipsum?dolor' USING utf8),'\\?','');

Это даст вам <çşığ_loremipsumdolor.

Это, конечно, также заменит любые фактические вопросительные знаки из строки. Но я уверен, что это также можно обойти (например, заменив нужный вопросительный знак заполнителем, затем удалив ненужные вопросительные знаки и снова заменив заполнитель вопросительными знаками).

К сожалению, все это звучит так, как будто я не стал бы делать это в SQL.

Другие вопросы по теме