#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', '')