我得到一个令人困惑的选择......结果,表定义是:
CREATE TABLE modes (
key INTEGER,
mode INTEGER,
channel INTEGER,
name TEXT,
short_name TEXT,
def INTEGER,
highlight INTEGER,
catagory TEXT,
subcatagory TEXT);
它填充了:
sqlite> select * from modes;
3|6|5|Green|G|0|255|a|b
3|6|6|Blue|B|0|255|a|b
3|9|1|Mode|Mode|0|255|a|b
3|9|2|Auto Mode Speed|Speed|0|255|a|b
3|9|3|Strobe|Strobe|0|255|a|b
3|9|4|Red|R|0|255|a|b
3|9|5|Green|G|0|255|a|b
3|9|6|Blue|B|0|255|a|b
3|9|7|Red2|R2|0|255|a|b
3|9|8|Green2|G2|0|255|a|b
3|9|9|Blue2|B2|0|255|a|b
3|6|4|Red|R|0|255|a|b
3|6|1|6|6|0|255|a|b
3|6|2|Auto mode speed|speed|0|255|a|b
3|6|3|Strobe|Strobe|0|255|strobe|b
注意倒数第三行: 3|6|1|6|6|0|255|a|b
如果我选择:
SELECT * FROM modes where mode=6 and name="Mode" order by channel;
它返回:
3|6|1|6|6|0|255|a|b
第 4 列和第 5 列(名称和短名称)不应该匹配,它们是 6,匹配项是“模式”。如果我将匹配字符串“Mode”更改为任何其他字符串,它会按预期工作。“模式”是保留字吗?或者我是否以某种方式将变量“模式”设置为 6?我不明白这种行为。