2017-03-13 21 views
0

我有MariaDB的兩個數據庫與InnoDB的發動機,既DB有latin_swedish_ci的整理,但是你latin_swedish_ci如表覈對等utf8_general_ci如表整理MySql的工作方式不同,當我執行左排除加入數據庫具有以下查詢:不ISNULL與整理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 

我得到的DB和表正確的結果都與latin_swedish_ci整理,但是空集於DB與latin_swedish_ci和表utf8_general_ci

他的行爲是否有解釋?提前致謝。

+3

整理是指欄目內容。如果一列是NULL,那麼它沒有內容。所以沒有 - IS NULL是整理獨立 –

+0

@juergend感謝信息,感謝它。但我擔心的是爲什麼查詢與數據庫和表都使用latin_swedish_ci排序規則處理,但在數據庫上使用latin_swedish_ci和使用utf8_general_ci的表設置爲空。 –

+0

那麼'NULL'是一個紅鯡魚?請爲這兩個表中的每一個提供'SHOW CREATE TABLE'。這可能會回答你的問題。如果沒有,我們將有更多的工作。 –

回答

0

不ISNULL與整理latin_swedish_ci MySQL的不同,utf8_general_ci

事實並非如此。關於排序規則,單元格爲空時ISNULL將起作用。

我使用latin_swedish_ci排序規則在數據庫和表格上得到了正確的結果,但在數據庫上使用latin_swedish_ci和具有utf8_general_ci的表進行了空設置。

也許默認爲空字符串,而不是NULL與覈對latin_swedish_ci