Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL:как да премахнете двойни или повече интервали от низ?

Ето един стар трик, който не изисква регулярни изрази или сложни функции.

Можете да използвате функцията за замяна 3 пъти, за да обработвате произволен брой интервали, като така:

REPLACE('This is    my   long    string',' ','<>')

става:

This<>is<><><><>my<><><>long<><><><>string

След това заменяте всички поява на '><' с празен низ '', като го обвивате в друга замяна:

REPLACE(
  REPLACE('This is    my   long    string',' ','<>'),
    '><',''
)

This<>is<>my<>long<>string

След това накрая една последна замяна преобразува '<>' обратно в единичен интервал

REPLACE(
  REPLACE(
    REPLACE('This is    my   long    string',
      ' ','<>'),
    '><',''),
  '<>',' ')

This is my long string

Този пример е създаден в MYSQL (поставете SELECT отпред), но работи на много езици.

Имайте предвид, че винаги имате нужда само от 3-те функции за замяна, за да обработвате произволен брой знаци, които трябва да бъдат заменени.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. схема на база данни за приятелство

  2. Отчет за посещаемостта в MySql

  3. MySQL пълнотекстово търсене на хештагове (включително символа # в индекса)

  4. Извличането на PDO връща само първия ред

  5. Вземете резултата от SQL заявката без формата на таблицата