我得到一个令人困惑的选择......在那里结果,该表的定义是:SELECT * ... WHERE列= “字符串” 返回无效的行
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(名称和SHORT_NAME)应该不匹配,它们是6和匹配的术语是 “模式”。如果我将匹配字符串“Mode”更改为任何其他字符串,则按预期工作。 “模式”是保留字吗?或者我以某种方式将变量“模式”设置为6 ?.我不明白这种行为。
如果你想给一个条件字符串只是尝试使用LIKE或其他,而不是[=]。 – ksugiarto 2013-02-21 03:38:45
谢谢,这种改变使其表现如预期。 我在文档中找到了单引号,我仍然在寻找双引号。 我试图给你投票,但我没有足够的声誉呢。 – Bill 2013-02-21 03:58:52