我在MariaDB上有两个数据库,其中InnoDB作为引擎,两个数据库都以latin_swedish_ci作为排序规则,但是其中一个数据库以latin_swedish_ci作为表排序规则,其他数据库以utf8_general_ci作为表排序规则,当我在数据库中执行左排除联接时,使用以下命令查询:

SELECT `ct`.`name`
FROM `csv_temp` as `ct`
left join `trans_recs` as `tr` on `ct`.`name` = `tr`.`name`
where `tr`.`name` is null and `ct`.`fk_project_id` = 1


我在使用latin_swedish_ci排序规则的数据库和表上都得到正确的结果,但是在使用latin_swedish_ci的数据库和使用utf8_general_ci的表上设置为空。

他的行为有解释吗?提前致谢。

最佳答案

MySql上的ISNULL是否与排序规则latin_swedish_ci和utf8_general_ci不同


它不是。当关于排序规则的单元格为空时,ISNULL将起作用。


  我在使用latin_swedish_ci排序规则的数据库和表上都得到了正确的结果,但是在使用latin_swedish_ci的数据库和表中使用utf8_general_ci的表上设置了空。


也许默认值为空字符串,而不是排序规则为NULLlatin_swedish_ci

关于mysql - MySql上的ISNULL是否与排序规则latin_swedish_ci和utf8_general_ci不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42767169/

10-12 18:33