“ SELECT EXISTS”给出错误的结果,在重置连接时更正

时间:2019-07-10 03:37:02

标签: mysql mysql-connector

我通过两个不同的连接连接到MySQL服务器。在其中之一上,我可以执行:

query = 'SELECT EXISTS(SELECT * FROM TABLE WHERE COLUMN = "VALUE")'
c.execute(query)
In: c.fetchall()[0][0]
Out: 1

通过第二台机器使用相同的值进行连接,我得到以下信息:

 query = 'SELECT EXISTS(SELECT * FROM TABLE WHERE COLUMN = "VALUE")'
 c.execute(query)
 In: c.fetchall()[0][0]
 Out: 0

似乎唯一可以解决的问题是关闭连接并重新启动。这引起了一些问题。有什么我可以解决的吗?

1 个答案:

答案 0 :(得分:0)

从逻辑上讲,具有相同基础数据的相同存在查询应在所有计算机上返回相同结果。但是,我发现您的查询有问题。您正在VALUE周围使用双引号,打算将其用作字符串文字。这可能导致MySQL将VALUE视为标识符(例如,列)。尝试改用引号:

query = "SELECT EXISTS (SELECT 1 FROM TABLE WHERE COLUMN = 'VALUE')"
c.execute(query)
In: c.fetchall()[0][0]