Contents

MySQL QUOTE() 跳脫字元小記

最近找 MySQL 有什麼跳脫字元函式
有爬到 QUOTE() 可以用
但比較特別

1
2
3
4
5
6
7
mysql> SELECT QUOTE('w3re''source');
+-----------------------+
| QUOTE('w3re''source') |
+-----------------------+
| 'w3re\'source'        | 
+-----------------------+
1 row in set (0.03 sec)

MySQL QUOTE() function - w3resource

注意事項

  • NULL 會回傳 NULL 字串!!! 這一點還滿神奇的
  • 字串會被'包住

透過這種特性,我可以用 SQL 組我要的字串

組 sql 範例

1
2
3
select concat("UPDATE oo SET a1 = ",quote(a1), ", a2 = ",quote(a2), " WHERE id =", bbb.id,";")
FROM xxxx
inner join bbb on ........

組完可以匯出 csv
可以用我之前寫的malagege/sqlMakecsv: for a sqltocsv package easy sample
這時候會發現 csv 內容每一行前後都會有 "
一行式 SQL 可以用正規化解決

但是多行的呢?
我想到解決方法

  1. 用csv2xlsx 轉 xlsx csv2xlsx CSV 轉 Excel 方法 | 程式狂想筆記

xlsx 複製裡面內容出來 發現還是有 "

  1. 開啟 Word 把所有內容選擇性天上→超連結貼上上面,即可解決!!!

QUOTE跳脫字元函式可以解決",'問題