GOOGLE ADS

четверг, 14 апреля 2022 г.

Обновление многополя Interbase SQL

Решение проблемы

Я думаю, что вы можете значительно улучшить этот код, но поскольку он «не работает», я считаю, что ваша проблема коренится в вашей ANDлогике. То, что у вас есть в вашем вопросе, в основном говорит UPDATE 3 things WHEN condition A AND condition B AND condition C, что это означает, что этот запрос ничего не сделает, если ВСЕ ТРИ части вашего WHEREпредложения не верны. Если я правильно понимаю вашу проблему, то на самом деле вы намереваетесь обновить каждый столбец независимо от остальных, например, если r.FULLNAMEон отсутствует, но f.FULLNAMEприсутствует, вы хотите обновить это поле независимо от того, r.PRODUCERсоответствует r.ADDRESSли оно критериям.

Что касается исправления вашего запроса, если я правильно понял вашу проблему, я думаю, что следующее сделает то, что вы хотите:

UPDATE RESTS r
INNER JOIN FORMS f
ON r.ID = f.ID
SET r.FULLNAME=coalesce(NULLIF(r.FULLNAME, ''), NULLIF(f.FULLNAME,''))
, r.PRODUCER=coalesce(NULLIF(r.PRODUCER,''), NULLIF(f.PRODUCER,''))
, r.ADDRESS=coalesce(NULLIF(r.ADDRESS,''), NULLIF(f.ADDRESS,''));

Первые три строки, я думаю, говорят сами за себя, вы объединяете две таблицы на основе общего идентификатора. Это убирает повторные r.id = f.idпроверки в вашем запросе. В остальном:


  • NULLIF(r.FULLNAME, '')возвращает, NULLесли r.FULLNAME = '', в противном случае возвращает значение r.FULLNAME.

  • coalesce(NULLIF(r.ADDRESS,''), NULLIF(f.ADDRESS,''))- возвращает первое незначение NULLв списке.

  • SET r.FULLNAME=coalesce(NULLIF(r.FULLNAME, ''), NULLIF(f.FULLNAME,''))будет SET r.FULLNAME =к первому значению, которое не равно NULLили ''.


Я считаю, что это удовлетворило всем критериям, которые вы пытались выразить в своих WHEREпунктах, но прокомментируйте, если вы думаете, что я что-то упустил.

Вот скрипка из вышеперечисленного: ссылка

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...