Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2018, 18:37   #1
onenures
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 21
По умолчанию Как поменять текст в ячейках столбца используя символ

Здравствуйте. Есть SQL таблица "table1" и столбец "column1". В ячейках содержится различный текст типа "текст ячейки - различный". Можно ли как-то поменять значения ячеек на "различный - текст ячейки"? То есть использовать для этого тире.
onenures вне форума Ответить с цитированием
Старый 12.12.2018, 22:19   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Нужно поменять текст "aa bb ccc ddddd - xxxxxxx yyyy" на "xxxxxxx yyyy aa bb ccc ddddd" ?
какая СУБД ?
тире есть во всех ячейках? Или менять нужно нужно только там, где есть тире?
а если тире не одно, что делать?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.12.2018, 13:08   #3
onenures
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 21
По умолчанию

Serge_Bliznykov, спасибо за ответ. Это MySQL, а если конкретно, то заголовки записей в Wordpress. Да, нужно поменять текст местами "aa bb ccc ddddd - xxxxxxx yyyy" на "xxxxxxx yyyy - aa bb ccc ddddd", оставив тире. Сейчас посмотрел, есть заголовки типа "aa bb ccc ddddd - xxxxxxx yyyy - zzzzzz ffff", то есть бывает 2 тире. В этом случае нужно чтобы получилось "xxxxxxx yyyy - aa bb ccc ddddd - zzzzzz ffff", то есть чтобы поменялись первые два "отрезка" текста, а третий остался на месте. Такое вообще возможно?
onenures вне форума Ответить с цитированием
Старый 13.12.2018, 13:40   #4
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

это для MSSQL
для MySQL нужны будут другие имена функций работы со строками
substring(что[исходная строка], откуда[начинать], сколько[копировать]) ==> ???
charindex(что[искать], где[искать исходная строка поиска], откуда[начинатьискать]) ==> ???
len(что[исходная строка]) ==> ???

Код:
select substring(txt, n1, len(txt)) + ' - ' + substring(txt, 1, n1) --одно тире
       substring(txt, n1, n2-n1)    + ' - ' + substring(txt, 1, n1) + ' - ' + substring(txt, n2, len(txt)) 
      --- вполне вероятно потребуется доработка индексов начала, длины
     n1 +/- ??? 
     n2 +/- ???
from ( select txt, 
              charindex(' - ', txt, 1) as n1, --не просто тире а еще и обрамленное пробелами (никто не запрещает искать и просто '-' )
              charindex(' - ', txt, charindex(' - ', txt)+1) as n2 --- и "тире" после "ранее" найденного
       from t
     ) as ts
where n2>0  --есть второе тире
   or n2<=0 --либо его нет
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 13.12.2018, 15:27   #5
onenures
Пользователь
 
Регистрация: 22.02.2010
Сообщений: 21
По умолчанию

evg_m, спасибо, но у меня мозгенков не хватит переделать наверное. substring в MySQL вроде есть, а вместо charindex нужно видимо использовать instr (что нагуглил), который не поддерживает стартовую позицию поиска.
onenures вне форума Ответить с цитированием
Старый 13.12.2018, 16:56   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Цитата:
который не поддерживает стартовую позицию поиска.
Код:
select txt, n1, 
  n1+ charindex('-', sub1) +/- ???  as n2   - ищем в обрезанной (см. ниже) 
from ( select txt, charindex('-', txt) as n1, 
       substring(txt, charindex('-', txt) + 1(?), len(txt)) as sub1 --обрезанная строка 
     from t ) as t1
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поменять местами первый и последний символ в Паскаль Flocky Паскаль, Turbo Pascal, PascalABC.NET 5 11.12.2015 16:59
Как вывести символ используя десятичного номера? forged Паскаль, Turbo Pascal, PascalABC.NET 54 16.03.2013 20:46
Макрос чтобы во всех ячейках столбца удалить последний символ alex0070 Microsoft Office Excel 4 14.10.2011 22:45
как выравнить в одной таблице текст в разных ячейках Arassir HTML и CSS 2 18.01.2010 08:29
Как поменять текст в ComboBox Volkogriz Общие вопросы Delphi 6 27.02.2009 14:13