SQLite中的布尔量(boolean)
- 根 据 SQLite 的文档,SQLite 没有原生的布尔数据类型。相反,布尔值被存储为整数 0(false)和 1(true)。
在您的 SQL 语句中,当 pc === "true" 时,您将 pc 设置为 true。但是在 SQLite 中,true 被视为一个整数字面量,等同于 1。因此,当您使用 pc === "true" ? true : false 时,它总是被存储为 1。
要在 SQLite 中正确地存储布尔值,您应该使用整数 0 和 1 来表示 false 和 true。例如:
INSERT OR IGNORE INTO deeds (title, des, pc, score, t_id)
VALUES (?, ?, ?, ?, ?);
如果 pc 是 true,则传递 1
如果 pc 是 false,则传递 0
或者,您也可以使用 SQLite 3.23.0 及更高版本引入的关键字 TRUE 和 FALSE。在这种情况下,您可以使用:
INSERT OR IGNORE INTO deeds (title, des, pc, score, t_id)
VALUES (?, ?, ?, ?, ?);
如果 pc 是 true,则传递 TRUE
如果 pc 是 false,则传递 FALSE
无论使用哪种方法,SQLite 都会将其存储为相应的整数值 1 或 0。
总之,在 SQLite 中存储布尔值时,请使用整数 0 和 1 或关键字 TRUE 和 FALSE。不要使用字符串 "true" 和 "false",因为它们会被视为字符串而不是布尔值。