UPDATE + LIMIT

Здравствуйте!

Подскажите пожалуйста по поводу данного кода, по логике вещей ряд должен обновить 100 записей:

UPDATE voip_nums
      SET provider = 'AwesomeProvider'
      WHERE ... ???
      FROM (SELECT provider
                  FROM voip_nums 
                    WHERE provider = 'CurrentProvider'
                     AND nid IN (SELECT nid
 
FROM voip_num_extparams
                               WHERE did IN (SELECT did
                                         FROM voip_dids
                                         WHERE num='1112233')) LIMIT 100);

но почему то выдается следующая ошибка:

HINT: For example, FROM (SELECT ...) [AS] foo.

Только только встал на пути освоения SQL, очень надеюсь на ваш опыт и профессионализм. А суть в том, что нужно обновить ряд из 100 записей

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Тут:

Тут: http://www.postgresql.org/docs/9.3/static/sql-update.html

Ты voip_nums в верху иерархии (UPDATE) ни счем не связал внизу иерархии.
Должно быть как-то так:

...
SELECT provider
                  FROM voip_nums vn
wehere
voip_nums.nid = vn.nid...

Но это чисто на первый взгляд

Спасибо за статью, но запрос

Спасибо за статью, но запрос по прежнему не работает. Каким то образом нужно указать, что обновление должно быть для ста записей этого ряда такой-то таблицы

UPDATE voip_numsSET provider

UPDATE voip_nums
SET provider = 'AwesomeProvider'
WHERE nid IN(SELECT nid
               FROM voip_nums vn
               WHERE access_level < 99
                     AND (office_id=1 OR office_id=3)
                      AND provider = 'CurrentProvider'
                        AND vn.nid IN (SELECT nid
                               FROM voip_num_extparams
                               WHERE did IN (SELECT did
                                     FROM voip_dids
                                     WHERE num='1112233')) LIMIT 112);

Такой запрос выберет 112 записей, соответствующий условиям и благополучно изменит поле provider. А может ли кто подсказать синтаксис при котором условие стоит таким образом, что бы изменить половину от имеющегося (без LIMIT 112), результат поделить на 2 ?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023