Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > SQL - запрос по замене телефонных номеров


Автор: addtanya 21.7.2008, 10:36
привет! помогите разобраться с запросом! Есть таблица саlls? в ней поля id, phone_id (идентификатор тел-на), call_num (исх. вонок), call_num_in(вх. звонок), и др. (прим. phone_id h2135, и 00135,  call_num_in %682135% и %00135%)
Задача: заменить все звонки с номера %682135% на номер %00135%
Запрос:
update calls
set phone_id = 'h2135', call_num_in like '%00135%'
where phone_id = 'h2135'
не совсем понимаю как работает оператор update, отсюда и неуверенность в правильности этого запроса... smile

Добавлено через 1 минуту и 27 секунд
привет! помогите разобраться с запросом! Есть таблица саlls? в ней поля id, phone_id (идентификатор тел-на), call_num (исх. вонок), call_num_in(вх. звонок), и др. (прим. phone_id h2135, и 00135,  call_num_in %682135% и %00135%)
Задача: заменить все звонки с номера %682135% на номер %00135%
Запрос:
update calls
set phone_id = 'h2135', call_num_in like '%00135%'
where phone_id = 'h2135'
не совсем понимаю как работает оператор update, отсюда и неуверенность в правильности этого запроса...  

Автор: Kesh 21.7.2008, 10:44
Код

call_num_in like '%00135%' 

такое можно только в WHERE ставить... Тут надо по-другому действовать...

Добавлено через 3 минуты и 18 секунд
Еще вопросик... Для вас % имеет какой-то сакральный смысл? Или же это все-таки маска?

Автор: addtanya 21.7.2008, 11:52
% я использую чтобы не вводить номер полностью, сам телефон был бы, например, таким 4852500135

Автор: skyboy 21.7.2008, 12:12
Цитата(addtanya @  21.7.2008,  09:36 Найти цитируемый пост)
заменить все звонки с номера %682135% на номер %00135%

как это должно менять? приведи пример. а то пока непонятно.

Автор: addtanya 21.7.2008, 12:21
пример: есть телефон 682135, в базе он прописан так (поле phone_id - h2135) с него идут звонки на множество различных номеров, есть еще номер 100135 (phone_id 00135) нужно чтобы все звонки с телефона h2135 (он идентифицируется так) были перенесены на 00135. по сути должна быть произведена замена поля phone_id h2135 на phone_id 00135, по факту после этой замены все звонки принадлежащие телефону h2135 должны переехать на 00135, а самого номера h2135 после этой замены должно не быть. Звонки с этих телефонов находяться в полях call_num и call_num_in. 

Автор: skyboy 21.7.2008, 12:40
тогда объясни мне, дураку, почему не сделать так:
Код

update calls
set call_num_in = '00135', call_num = '00135'
where phone_id = 'h2135'

Автор: addtanya 21.7.2008, 13:02
это не ты дурак...
я попробовала твой вариант но пишет ошибку:
SQL Server has run out of LOCKS. Rerun your statement when there are fewer active users, or ask the system administrator to reconfigure SQL Server with more LOCKS.

мой вариант тоже не катит 
update calls
set phone_id = '00135', call_num_in like '%00135%'
where phone_id = 'h2135'
не нривиться like 
да... плохо быть бестолковым и начинающим 

Автор: addtanya 21.7.2008, 13:20
у меня получилось их заменить спасибо за помощь, я поняла свои ошибки... 

Автор: Kesh 21.7.2008, 13:21
addtanya, так это не ошибка запроса, а ошибка настройки сервера...

Автор: addtanya 21.7.2008, 13:52
да так и есть, теперь с сервером все в порядке и мой запрос выполнился, не совсем корректно правда, но для начала сойдет и так.. спасибо!!!

Автор: Бонифаций 22.7.2008, 14:22
Цитата(addtanya @  21.7.2008,  13:02 Найти цитируемый пост)
я попробовала твой вариант но пишет ошибку:SQL Server has run out of LOCKS. Rerun your statement when there are fewer active users, or ask the system administrator to reconfigure SQL Server with more LOCKS.


такое сообщение об ошибке заставляет меня думать что это нисколько не mysql. А очень даже mssql

Автор: addtanya 22.7.2008, 14:29
Цитата(Бонифаций @ 22.7.2008,  14:22)
Цитата(addtanya @  21.7.2008,  13:02 Найти цитируемый пост)
я попробовала твой вариант но пишет ошибку:SQL Server has run out of LOCKS. Rerun your statement when there are fewer active users, or ask the system administrator to reconfigure SQL Server with more LOCKS.


такое сообщение об ошибке заставляет меня думать что это нисколько не mysql. А очень даже mssql

а я разве говорила что это mysql ???

Автор: Feldmarschall 22.7.2008, 15:01
девушка, обратите внимание на название форума, в который вы умудрились написать

Автор: addtanya 22.7.2008, 15:08
Цитата(Feldmarschall @ 22.7.2008,  15:01)
девушка, обратите внимание на название форума, в который вы умудрились написать

а мне умудрились ответить.... 

Автор: Feldmarschall 22.7.2008, 15:09
вас что-то не устраивает? у вас претензии? отвечать не нужно было?

Автор: addtanya 22.7.2008, 15:11
Цитата(Feldmarschall @ 22.7.2008,  15:09)
вас что-то не устраивает? у вас претензии? отвечать не нужно было?

да нет у меня никаких претензий...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)