SQLite:数据类型取决于引号吗?

Sep*_*ram 4 sqlite

在 SQLite 中,值的数据类型与值本身相关联,而不是与列类型相关联。因此,假设我们有一个带有整数主键“id”和整数列“some_number”的表。如果我执行这样的查询:

INSERT INTO mytable (id, some_number) VALUES (NULL, "1234")
Run Code Online (Sandbox Code Playgroud)

123 会作为整数还是字符串插入?比如说,当我将它与“234”等其他值(作为数字 1234 > 234,作为字符串“1234” < “234”,对吧?)进行比较时,它会对我产生什么后果?

Bin*_*nil 5

如果您的字段类型 (some_number) 是数字,那么它将作为数字值插入。不管你是否加引号。

如果 some_number 是数字

INSERT INTO mytable (id, some_number) VALUES (NULL, "1234")
Run Code Online (Sandbox Code Playgroud)

INSERT INTO mytable (id, some_number) VALUES (NULL, 1234)
Run Code Online (Sandbox Code Playgroud)

是相同的