В настоящее время я работаю над 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')
Фактическая база данных:
Пример данных, которые я получаю из приложения:
[
{
"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')
и наоборот.
Фактическая база данных:
Однако, когда я это делаю, outsideBranchAccess
всегда возвращается к false
, даже если предыдущие данные из базы данных - true
. Есть мысли?
MySQL Fiddle: ЗДЕСЬ