SQL WHERE命令无意中检查变量是否等于列名而不是列值
我有一个命令:SQL WHERE命令无意中检查变量是否等于列名而不是列值,sql,sqlite,Sql,Sqlite,我有一个命令: 从我的表格中选择*,其中word=“word” 但这是匹配所有行的。我只希望它与word列包含值“word”的行匹配 ,及。FWIW,我用第二个SQLFIDLE复制了你的结果,但不是第一个。我不明白。除了单引号和双引号之外,它不一样吗?@oxuser-From:单引号中的关键字是字符串文字。双引号中的关键字是标识符。然而,SQLite是灵活的。如果在字符串周围使用双引号,但未将其识别为标识符,则会将其视为字符串文字。因此,大多数情况下都可以使用双引号,但这次不能,因为它与列名匹配
从我的表格中选择*,其中word=“word”代码>
但这是匹配所有行的。我只希望它与word列包含值“word”的行匹配
,及。FWIW,我用第二个SQLFIDLE复制了你的结果,但不是第一个。我不明白。除了单引号和双引号之外,它不一样吗?@oxuser-From:单引号中的关键字是字符串文字。双引号中的关键字是标识符。然而,SQLite是灵活的。如果在字符串周围使用双引号,但未将其识别为标识符,则会将其视为字符串文字。因此,大多数情况下都可以使用双引号,但这次不能,因为它与列名匹配。
SELECT * FROM my_table WHERE word = 'word'