1

我正在尝试使用这个令人作呕的 MySQL (5.1.65) 版本,它要求所有内容都用引号引起来,并且对所有内容都非常严格。我正在尝试查找重复的条目,因此我正在尝试制作一个脚本,如果它返回用户提交的值,那么显然我们有一个重复项。那是在我的服务器上工作,不是这个。

这就是我想要执行的。这一切顺利,没有错误,

SELECT * FROM `keylist` WHERE 'key' = '7489asdf32749asdf8237492asdf49837249'

问题是数据库中的 7489asdf32749asdf8237492asdf49837249 是 varchar ......它完全一样。但奇怪的是,如果我这样做

SELECT * FROM `keylist` WHERE key = '7489asdf32749asdf8237492asdf49837249'

这不起作用,而如果我这样做是为了选择我的 ID,它会起作用。

我不知道我做错了什么,但是这个愚蠢的 MySQL 版本肯定没有帮助。

总体而言,我的问题是我正在尝试查找重复项,因此我执行了 WHERE key = 语句,并且其中的键在我知道它在其中时不返回任何内容。

4

1 回答 1

1

key是 MySQL 中的保留字 - http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-0.html

您的第一个版本工作成为 backtics -` `对实际列名的强制解释。

于 2013-01-06T03:24:38.960 回答