Как удалить символы из конца поля в базе данных MySql

17

Я ищу способ удалить некоторые символы из конца поля в моей базе данных MySql.

Скажем, у меня есть таблица под названием «элементы», и есть поле под названием «описания», некоторые из этих описаний имеют & lt; br & gt; в конце. Может быть один случай, или в конце этого поля может быть 2-3 & lt; br & gt ;.

Мне нужно найти путь через PHP / MySql, чтобы обрезать эти & lt; br & gt. В описании, которое я хочу сохранить, могут быть другие & lt; br & gt ;, это только те, которые мне нужно удалить.

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

    
задан Sherwin Flight 10.04.2012 в 05:11
источник
  • вы также можете использовать удаление, если у вас не было br в середине или в начале –  Ankit Sharma 10.04.2012 в 07:15

3 ответа

28

У меня нет экземпляра mysql для тестирования, но что-то вроде этого, вероятно, сделает это:

UPDATE myTable
  SET myCol = TRIM(TRAILING '<br>' FROM myCol);

Посмотрите на некоторые из функций строки .     

ответ дан Glenn 10.04.2012 в 05:22
источник
10

Вы можете использовать функцию TRIM в mysql.

UPDATE items SET descriptions = TRIM(TRAILING "<br>" FROM descriptions)

Использование TRIM здесь .

    
ответ дан yaronli 10.04.2012 в 05:23
источник
  • Я должен был быть более ясным в своем вопросе. Персонажи, которых я хотел удалить, были, независимо от того, сколько. Я буквально не пытался удалить «<br>». –  Sherwin Flight 10.04.2012 в 05:39
  • Я все же проголосовал за ваш ответ. –  Sherwin Flight 10.04.2012 в 05:41
  • @SherwinFlight Хорошо, я отредактирую ответ. –  yaronli 10.04.2012 в 05:41
2

Используйте SUBSTRING и LENGTH, чтобы обрезать поле. Что-то вроде

UPDATE MyTable SET MyField=SUBSTRING(MyField,1,LENGTH(MyField)-4)
WHERE MyField LIKE '%<br>'
    
ответ дан SteveCav 10.04.2012 в 05:24
источник
  • ... И затем вы выполняете запрос повторно, пока не будет больше записей, соответствующих LIKE '% br'. Умная! –  octern 10.04.2012 в 05:35
  • Средний аргумент в SUBSTRING должен быть одним, а не равным нулю. dev.mysql.com/doc/refman/5.0/en/... –  Peter Howe 24.01.2014 в 14:15
  • Вот почему я сказал «что-то вроде» :). Спасибо, отредактирован. –  SteveCav 29.01.2014 в 23:57