imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 15.10.2005, 00:58     # 1
Sam Dark
Member
 
Аватар для Sam Dark
 
Регистрация: 03.07.2003
Адрес: Voronezh, Russia
Пол: Male
Сообщения: 294

Sam Dark МолодецSam Dark МолодецSam Dark Молодец
SQL. Обновить поля.

Задача:

Есть таблица distrib, в ней есть столбцы id, name, path. Надо для каждого столбца заменить в полях name и path все \ на \\.

Как такое сделать?

Спасибо.
__________________
Это жжжж неспроста...
Sam Dark вне форума  
Старый 15.10.2005, 08:27     # 2
Naked
::VIP::
 
Аватар для Naked
 
Регистрация: 15.05.2005
Адрес: Питер
Сообщения: 1 194

Naked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked СэнсэйNaked Сэнсэй
Цитата:
UPDATE distrib SET name=replace(name, '\', '\\')
Вроде так, если будет ругаться, то нужно replace (...) сделать функцией и потом уже говорить
UPDATE distrib SET name=my_function(name)
Это работает в Postgres, думаю SQL язык для всех один
__________________
Чтобы воля стала действующим началом, тело должно быть совершенным.
Naked вне форума  
Старый 12.11.2005, 14:19     # 3
danial
Guest
 
Сообщения: n/a

ну не у всех один, тем более если это касается функций
мануал к СУБД надо почитать =)
 
Старый 27.11.2005, 00:14     # 4
Bondiks
Guest
 
Сообщения: n/a

Цитата:
Сообщение от Sam Dark
Задача:

Есть таблица distrib, в ней есть столбцы id, name, path. Надо для каждого столбца заменить в полях name и path все \ на \\.

Как такое сделать?

Спасибо.
Может вот так:

UPDATE distrib
SET path = replace(path, '\','\\')
WHERE ...

Или так (для SQL Server):

DECLARE @mypath VARCHAR(255), @slash_position INT

SET @mypath=(SELECT path from distrib where... должна быть возвращена одна строка, скажем, через курсор)
SET @slash_position = CHARINDEX( '\', @mypath)
SET @mypath = STUFF(@mypath, @slash_position, 1, '\\')

update distrib
set path=@mypath
where... (должна быть возвращена одна строка, скажем, через курсор)

Последний раз редактировалось Bondiks; 27.11.2005 в 00:17.
 

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:35.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.