【发布时间】:2012-03-16 00:33:00
【问题描述】:
我的 java 程序中有这样的查询 -
SELECT * FROM conversation WHERE user_id != 1 AND conversation_id IN
( SELECT conversation_id FROM conversation WHERE user_id = 1)
这使用 jdbc 在结果中返回 0 行。但是,如果我将其复制并粘贴到 phpmyadmin 中,它可以正常工作。那么到底出了什么问题呢?
我已将 ?allowMultiQueries=true 添加到我的 jdbc 连接字符串中,以查看这是否会产生影响,但它没有。
编辑:
这是我的桌子的样子。我希望在与用户 1 的对话中选择用户的 ID。我刚刚注意到我遗漏了 !在 != 上面的查询中,我现在把它放进去。所以有人知道为什么这适用于 phpmyadmin 而不是 jdbc?
【问题讨论】:
-
你为什么不想加入?这当然有效。
-
jdbc 调用是什么样的?任何输入还是 1 是 jdbc 中查询的一部分?
-
您的子查询没有任何意义。它应用与外部查询相同的条件,但具有额外查询的开销。您不需要为子查询设置 allowMultiQueries=true。
-
我已经编辑了我的帖子,我输入了 = 而不是 !=
-
我认为allowMultiQueries 并不重要。这是一个碰巧有一个子查询的查询——它不是两个查询。您仍然可以将其作为联接来执行,但这并不能回答您的问题-只是避免了它。也就是说,我对你的问题没有答案。 :)