Оператор UPDATE без изменения значения - PullRequest
3 голосов
/ 29 мая 2020

В настоящее время я работаю над node с библиотекой express с использованием коннектора mysql. Так что, скорее всего, я работаю со строковым литералом SQL Query.

Теперь я реализовал дизайн, в котором у меня есть постоянная формула в запросе.

Структура таблицы:

╔═══╦═════════════════════╦═══════════════╗
║   ║ Field Name          ║ Type          ║
╠═══╬═════════════════════╬═══════════════╣
║ 1 ║ groupLevel          ║ varchar       ║
║ 2 ║ insideBranchAccess  ║ boolean       ║
║ 3 ║ outsideBranchAccess ║ boolean       ║
║ 4 ║ ipadFunctionID      ║ varchar       ║
║ 5 ║ createdBy           ║ varchar       ║
║ 6 ║ approvedBy          ║ varchar       ║
╚═══╩═════════════════════╩═══════════════╝

SQL Запрос:

INSERT INTO iPadFunctionAccess 
(groupLevel, insideBranchAccess, outsideBranchAccess, ipadFunctionID, createdBy, approvedBy) 
VALUES 
?
ON DUPLICATE KEY UPDATE 
insideBranchAccess = VALUES(insideBranchAccess), 
outsideBranchAccess = VALUES(outsideBranchAccess), 
updatedBy = VALUES(createdBy);

Итак, ? - это то место, куда я вставляю свои данные. Вот пример данных, которые я вставляю:

(5, false, true, 'IIU.A05', 'SYSTEM', 'SYSTEM') 

Фактическая база данных: insert event

Пример данных, которые я получаю из приложения:

[
    {
        "id": "DEP.A03",
        "groupLevel": "5",
        "insideBranchAccess": true,
        "outsideBranchAccess": true
    },
    {
        "id": "DEP.S02",
        "groupLevel": "5",
        "insideBranchAccess": true
    },
    {
        "id": "DEP.S04",
        "groupLevel": "5",
        "outsideBranchAccess": true
    }
]

Итак, как видите, insideBranchAccess и outsideBranchAccess не являются обязательными.

Я видел этот ответ , поэтому я придумал такой запроса. Так что, если я получил только insideBranchAccess, мой запрос должен быть таким

(5, true, outsideBranchAccess, 'IIU.A05', 'SYSTEM', 'SYSTEM')

и наоборот.

Фактическая база данных: enter image description here

Однако, когда я это делаю, outsideBranchAccess всегда возвращается к false, даже если предыдущие данные из базы данных - true. Есть мысли?

MySQL Fiddle: ЗДЕСЬ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...