我正在尝试使用这个令人厌恶的 MySQL 版本 (5.1.65),它要求所有内容都用引号引起来,而且对所有内容都非常严格。我试图寻找重复的条目,所以我试图制作一个脚本,如果它返回用户提交的值,那么显然我们有一个重复项。好吧,那是在我的服务器上工作,不是这个。
这就是我要执行的操作。一切顺利,没有错误,
SELECT * FROM `keylist` WHERE 'key' = '7489asdf32749asdf8237492asdf49837249'
问题是 7489asdf32749asdf8237492asdf49837249 在数据库中作为 varchar...它完全一样。但奇怪的是,如果我这样做
SELECT * FROM `keylist` WHERE key = '7489asdf32749asdf8237492asdf49837249'
那行不通,但如果我这样做是为了选择我的 ID,它就可以了。
我不知道我做错了什么,但这个愚蠢的 MySQL 版本肯定帮不上什么忙。
总的来说,我的问题是我正在尝试寻找重复项,所以我做了一个 WHERE key = 语句,并且其中的一个键在我知道它在那里时不返回任何内容。
最佳答案
key
是 MySQL 中的保留字 - http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords-5-0.html
您的第一个版本作品变成了反义词 - ` `
强制解释为实际的列名。
关于MySQL 5.1.65 |选择在哪里找不到我知道的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14178954/