Каким был бы sql-запрос для удаления n r из текста?

#mysql #sql

#mysql #sql

Вопрос:

Я использую MySQL. В моих данных есть столбец с именем text , который использует тип данных TEXT.

Для каждой записи в этом столбце есть несколько новых строк. Я хочу удалить все новые строки с помощью sql-запроса. Как я могу это сделать?

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

1. ЗАМЕНИТЬ

Ответ №1:

Попробуйте этот —

 CREATE TABLE table1(column1 TEXT);
INSERT INTO table1 VALUES ('text1rntext2
text3');

SELECT * FROM table1;
--------
text1
text2
text3

UPDATE table1 SET column1 = REPLACE(column1, 'rn', '');
SELECT * FROM table1;
--------
text1text2text3
  

Ответ №2:

Предыдущие предложения у меня не сработали. Кажется, что это работает, только если я действительно ввел r и n текст в виде текста. Я обнаружил, что следующее работает хорошо —

 replace(replace([MyFieldName],char(13),''),char(10),'')
  

Я также создал вычисляемое поле в своей таблице, которое использует эту формулу. Таким образом, я могу просто ссылаться на это поле в областях моей программы, которые нарушали исходное содержимое поля.

Ответ №3:

Данное предложение, т.е. REPLACE(REPLACE(DBField, 'n', ''), 'r', '') не будет работать, если есть невидимый HTML-код, подобный n r . Для этого вы должны использовать код символа.

Пример:

 REPLACE(REPLACE(REPLACE(DBField, CHAR(10), ''), CHAR(13), ''), CHAR(9), '')
  

Ответ №4:

Попробуйте это

 REPLACE(REPLACE(FIELD, 'n', ''), 'r', '')
  

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

1. Согласен. Это гарантирует, что эти символы n и r (в любом порядке и комбинации) не будут экранированы при замене. UPDATE table1 SET column1 = REPLACE(REPLACE(column1, 'n', ''), 'r', '');

Ответ №5:

Вы можете использовать REPLACE(text,'nr',' ') для этого.

Ответ №6:

я перепробовал все сказанное здесь, но у меня ничего не сработало, моя база данных — IBM Informix, однако мне удалось решить проблему следующим образом:

 UPDATE personas SET foto_path = SUBSTRING(foto_path FROM 1 FOR LENGTH(foto_path) - 1);
  

Надеюсь, это поможет другим в подобной ситуации.

Ответ №7:

Приведенная выше версия с одной обратной косой чертой прояснила некоторые для меня, но также пришлось запустить это, чтобы прояснить остальное.

 REPLACE(REPLACE(FIELD, '\n', ''), '\r', '')