Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL WHERE命令无意中检查变量是否等于列名而不是列值_Sql_Sqlite - Fatal编程技术网

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'