我在sqlite中有一个SQL查询,其中包含带下划线的列名
_
字符。键入列名时遇到问题(
Nom_ligne
)进入查询(我得到
SQL error: no such column
)使用后,当我复制粘贴列名时,我可以使查询正常工作。
PRAGMA table_info
. 它们看起来与我完全相同,但记事本+无法将列名识别为相同(单击一组字符时,它会突出显示同一组字符的所有出现)。
我有
found
有两种不同类型的下划线字符看起来相同。如何选择正确的类型?这是我的代码行的问题吗(见下文)?
这里是我的代码行,有不同的字符。
> #this works
SELECT train_arret.stop_name FROM train_arret_ligne, lignes_train, train_arret WHERE
train_arret.stop_code_=train_arret_ligne.ID_arret AND
train_arret_ligne.ligne_code=lignes_train.ID_ligne AND
lignes_train.Nom_ligne="Candiac"
>
##returns error SQL error: "no such column: lignes_train.Nom_ligne"
SELECT train_arret.stop_name FROM train_arret_ligne, lignes_train,
train_arret WHERE train_arret.stop_code_=train_arret_ligne.ID_arret
AND train_arret_ligne.ligne_code=lignes_train.ID_ligne AND
lignes_train.Nom_ligne="Candiac"
>
> #these work
SELECT lignes_train.ID_ligne FROM lignes_train WHERE
lignes_train.Nom_ligne="Candiac"
编辑:
我从零开始打这个(没有复制粘贴),我得到一个错误。
SELECT train_arret.stop_name FROM train_arret_ligne, lignes_train, train_arret
WHERE train_arret.stop_code_=train_arret_ligne.ID_arret AND
train_arret_ligne.ligne_code=lignes_train.ID_ligne AND
lignes_train.Nom_ligne="Candiac"
更多编辑:
当我通过十六进制编辑器复制代码行时
FlexHEX
我发现这个额外的隐藏角色
EF BB BF
是使代码在SQL查询中工作所必需的。当我移到文本上时,我还可以检测sqlite/spatiallite中的额外字符。在
挠曲
:
#doesn't work
lignes_train.ID_ligne
#works
lignes_train.ID_ligne
下面是我请求sqlite/spatiallite显示create语句时得到的结果
CREATE TABLE "lignes_train" (
"PK_UID" INTEGER PRIMARY KEY AUTOINCREMENT,
"ID_ligne" INTEGER,
"Nom_ligne" TEXT)