萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL CONCAT 函數:字串合併查詢完全指南

為什麼需要 CONCAT?

在 MySQL 中,直接用 `+` 連接字串(如 `SELECT a+b FROM t`)會被視為數值相加,導致 `varchar` 欄位顯示錯誤。正確做法是使用 CONCAT() 函數。

語法與特性

CONCAT(str1, str2, ...)
  • 回傳所有參數連接後的字串
  • 若任一參數為 NULL,整體回傳 NULL
  • 所有參數皆為非二進位字串 → 結果為非二進位字串
  • 含二進位字串參數 → 結果為二進位字串
  • 數值參數會自動轉為二進位字串;若需保留字元格式,請用 CAST(int_col AS CHAR)

實用範例

基本連接

SELECT CONCAT('11','22','33');  -- 結果:112233

含 NULL 值

SELECT CONCAT('11','22',NULL);  -- 結果:NULL

避免數值隱性轉型

SELECT CONCAT(CAST(int_col AS CHAR), char_col) FROM t;

效能提醒

雖然 CONCAT 好用,但在大量資料、高頻查詢的欄位上濫用會增加 CPU 開銷。建議:

  • 應用層組裝字串
  • 或建立虛擬欄位/生成欄位預先合併

總結

CONCAT 是 MySQL 字串合併的標準函數,掌握其 NULL 傳播行為與型別轉換規則,能避開常見坑點。

copyright © 萬盛學電腦網 all rights reserved