MySQLWorkbench 返回“OK”而不是返回行

lur*_*ing 1 mysql sql mysql-workbench

好的,我试图生成“在 SC 和 SPR 中流行的儿童保育中心的前 5 个名称”,并且在 mySQLWorkbench 输出中我得到了“OK”而不是“xxx rows returned”。你们中的任何人都可以检查我的查询是否正确吗?

mySQLWorkbench 版本是 8.0.18

SELECT centre_service.centre_name
FROM centre_service
WHERE centre_service.centre_code = centre.centre_code  AND (type_of_citizenship = "SC" OR type_of_citizenship = "SPR") AND centre_name = (
SELECT centre.centre_name
FROM centre
GROUP BY centre_name LIMIT 5
); 
Run Code Online (Sandbox Code Playgroud)

Jas*_*son 5

此答案不会解决查询中的错误,但有助于回答有关为什么既没有看到错误也没有看到数据行的问题,以及可以采取什么措施。

MySQL Workbench 不能很好地处理所有类型的查询错误。有时它只是返回“OK”,没有任何行。例如,我已经看到过这种情况,例如非法混合排序错误。

发生这种情况时,只需在查询选项卡中发出以下命令:

show errors;
Run Code Online (Sandbox Code Playgroud)

这将返回一个或多个错误,每个错误都有一个级别、一个代码和一条消息。例如,我的查询(细节并不重要)返回“OK”,没有其他任何结果。然后show errors给了我这个:

等级 代码 信息
错误 1267 操作“=”时非法混合排序规则 (utf8_general_ci,IMPLICIT) 和 (utf8_unicode_ci,IMPLICIT)

我不能肯定地说,但似乎[某些?]运行时错误容易出现此问题,而不是立即捕获的语法错误。