在MySQL中,我們經常會用到LOAD DATA INFILE語句來將一個數據文件中的內容導入到一個MySQL表格中。在這個語句中,我們需要指定文件分隔符以及字符串邊界符,以便正確定位每個數據字段的位置。其中字符串邊界符的指定就用到了ENCLOSED BY參數。
ENCLOSED BY參數表示的是數據文件中的字符串邊界符。也就是說,如果數據文件中的數據字段包含了這個字符串邊界符,那么我們要用這個參數來告訴MySQL,這個字符串邊界符在數據文件中被包含了起來,并不是用來分隔數據的。在語句中,這個參數的使用格式是這樣的:
LOAD DATA INFILE '文件路徑' INTO TABLE 表格名 FIELDS TERMINATED BY '字段分隔符' OPTIONALLY ENCLOSED BY '字符串邊界符';
在這個語句中,ENCLOSED BY參數的具體作用是這樣的:如果我們沒有指定這個參數,那么MySQL在讀入數據文件時,默認的字符串邊界符是單引號(')和雙引號(")。如果數據文件中某個字段中包含了一個單引號或者雙引號,而我們沒有指定ENCLOSED BY參數,那么程序運行時就會將這個引號視作分隔符,導致讀入數據的錯誤。如果我們指定了ENCLOSED BY參數,那么MySQL將會將這個字符串邊界符視作文本的一部分,而不會將其作為分隔符進行數據的讀入操作。