萬盛學電腦網

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

MySQL LIKE 模糊查詢與 REPLACE 批量替換實戰技巧

LIKE 通配符速查

通配符匹配規則範例
%任意長度字串(含 0 字元)'abc' LIKE 'a%' → True
_單一字元'abc' LIKE 'a_c' → True
[abc]字元集合(MySQL 不支援,SQL Server 才有)—
[^abc]排除集合(MySQL 不支援)—

注意:MySQL LIKE 僅支援 % 與 _,字元類別需用 REGEXP。

批量查找範例

-- 查找產品名含 # 號的記錄
SELECT products_name
FROM nike.products_description
WHERE products_name LIKE '%#%';

REPLACE 批量替換

UPDATE article
SET content = REPLACE(content, 'sjolzy', 'sjolzy.cn')
WHERE name LIKE '%#%';
  • REPLACE(str, from_str, to_str):將 str 中所有 from_str 替換為 to_str,區分大小寫。
  • 若需不區分大小寫:REPLACE(LOWER(str), LOWER(from_str), to_str)(會改變原大小寫)。

進階:結合 REGEXP 精準替換

-- 僅替換獨立單詞 'old'(邊界為非字母數字)
UPDATE article
SET content = REGEXP_REPLACE(content, '[[:<:]]old[[:>:]]', 'new')
WHERE content REGEXP '[[:<:]]old[[:>:]]';  -- MySQL 8.0+

效能提醒

  • LIKE '%xxx%' 導致全表掃描,大表建議全文索引或 Elasticsearch。
  • REPLACE 在 WHERE 中同樣不走索引,批量更新建議分批 LIMIT 1000 循環執行,避免長鎖表。
  • 更新前先 SELECT 確認影響範圍,生產環境務必備份。
copyright © 萬盛學電腦網 all rights reserved