MySQLWorkbench 返回'OK'而不是返回行



好吧,我正在尝试生成"在SC和SPR中流行的儿童保育中心的TOP5名称";我得到了一个";OK";而不是";xxx行返回";在mySQLWorkbench输出中。你们中的任何人都可以检查我的询问是否正确吗??

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
); 

这个答案不会解决查询中的错误,但有助于回答为什么既看不到错误也看不到数据行,以及可以对此做些什么的问题。

MySQL工作台并不能很好地处理所有类型的查询错误。有时它只是返回";OK";没有行。例如,我在非法的混合排序规则错误中看到过这种情况。

当这种情况发生时,只需在查询选项卡中发出:

show errors;

这将返回一个或多个错误,每个错误都有一个级别、一个代码和一条消息。例如,我的查询(细节不重要(返回";OK";什么都没有。然后show errors给了我这个:

的排序规则(utf8_general_ci,IMPLICIT(和(utf8a_unicode_ci,IMPLICIT(的非法混合
级别代码消息
错误1267操作'='

尝试此查询。您有两个错误:在外部作用域中使用子查询中的表引用(替换为内部作用域(和对多个值使用比较运算符(更改为IN(。

SELECT centre_service.centre_name
FROM centre_service 
LEFT JOIN (
SELECT centre_name
FROM centre
GROUP BY centre_name LIMIT 5
) centre ON centre.centre_name = centre_service.centre_name
WHERE 
(type_of_citizenship = "SC" OR type_of_citizenship = "SPR") AND
centre_service.centre_code = centre.centre_code;

最新更新