当列包含“?”时,SQLite select 语句不起作用或 'x' 字符
SQLite select statement is not working when a column contains the '?' or the 'x' character
我注意到,每当我尝试在包含字符串的列上执行 sqlite 查询时,其中包含 '?' (由于编码错误)或包含'x'字符,匹配失败。
有谁知道为什么?我怀疑第二种情况与相对十六进制符号有关。这适用于 sqlite 版本 3.7.9 和 3.8.6。
提前致谢
编辑:
SELECT FM.Foodname FROM Foodtable AS FM WHERE Foodname MATCH 'Alom*' UNION ALL SELECT F2.Foodname FROM Foods_units_2 AS F2 JOIN Foodtable ON Foodtable.Foodname = F2.Foodname ORDER BY F2.Foodname;
问题在于最后一条语句 (Foodtable.Foodname = F2.Foodname),其中 Foodtable 包含所有记录,而 Foods_units_2 包含具有不同测量单位的部分记录。在这两个表中都有包含字符“?”的食品名称字符串。 (由于编码错误)和 'x'。在这些情况下,匹配失败并且 sqlite 将错误的字符串替换为其他字符串
例如,在第一种情况下,我有 "Cr?me Kαραμελέ" 其中 '?'应该是'è',在第二种情况下是“4?4 compact”,其中'?'应该是 'x'.
好吧,我想我弄错了。匹配失败的原因是因为主要 table 包含记录,其中 '?'存在(编码错误),而 Foods_units_2 table 不存在。
无论如何,感谢你们的及时处理,对于给您带来的不便,我们深表歉意。
我注意到,每当我尝试在包含字符串的列上执行 sqlite 查询时,其中包含 '?' (由于编码错误)或包含'x'字符,匹配失败。 有谁知道为什么?我怀疑第二种情况与相对十六进制符号有关。这适用于 sqlite 版本 3.7.9 和 3.8.6。 提前致谢
编辑:
SELECT FM.Foodname FROM Foodtable AS FM WHERE Foodname MATCH 'Alom*' UNION ALL SELECT F2.Foodname FROM Foods_units_2 AS F2 JOIN Foodtable ON Foodtable.Foodname = F2.Foodname ORDER BY F2.Foodname;
问题在于最后一条语句 (Foodtable.Foodname = F2.Foodname),其中 Foodtable 包含所有记录,而 Foods_units_2 包含具有不同测量单位的部分记录。在这两个表中都有包含字符“?”的食品名称字符串。 (由于编码错误)和 'x'。在这些情况下,匹配失败并且 sqlite 将错误的字符串替换为其他字符串
例如,在第一种情况下,我有 "Cr?me Kαραμελέ" 其中 '?'应该是'è',在第二种情况下是“4?4 compact”,其中'?'应该是 'x'.
好吧,我想我弄错了。匹配失败的原因是因为主要 table 包含记录,其中 '?'存在(编码错误),而 Foods_units_2 table 不存在。
无论如何,感谢你们的及时处理,对于给您带来的不便,我们深表歉意。