当前,我正在使用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
是可选的。
我看到了这个answer,所以我想到了这种查询。因此,如果我只得到insideBranchAccess
我的查询应该是这样
(5, true, outsideBranchAccess, 'IIU.A05', 'SYSTEM', 'SYSTEM')
反之亦然。
但是,当我这样做时,即使来自数据库的先前数据是outsideBranchAccess
,false
也总是返回到true
。有什么想法吗?
MySQL小提琴:HERE