我通过两个不同的连接连接到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
似乎唯一可以解决的问题是关闭连接并重新启动。这引起了一些问题。有什么我可以解决的吗?
答案 0 :(得分:0)
从逻辑上讲,具有相同基础数据的相同存在查询应在所有计算机上返回相同结果。但是,我发现您的查询有问题。您正在VALUE
周围使用双引号,打算将其用作字符串文字。这可能导致MySQL将VALUE
视为标识符(例如,列)。尝试改用单引号:
query = "SELECT EXISTS (SELECT 1 FROM TABLE WHERE COLUMN = 'VALUE')"
c.execute(query)
In: c.fetchall()[0][0]