在MySQL中,值為一個空格是怎么處理的呢?
MySQL在存儲數(shù)據(jù)時,會自動去掉字符串的前后空格,稱之為TRIM,而且不管是哪種數(shù)據(jù)類型的字段,都會執(zhí)行TRIM操作。 那么,如果我們存儲的值本身就是一個空格,會怎樣呢?會不會也被去掉呢? 我們來試一下: mysql>CREATE TABLE `test` ( ->`id` int(11) NOT NULL AUTO_INCREMENT, ->`name` varchar(10) DEFAULT NULL, ->PRIMARY KEY (`id`) ->) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; Query OK, 0 rows affected (0.01 sec) mysql>INSERT INTO `test` (`name`) VALUES (' '); Query OK, 1 row affected (0.02 sec) mysql>SELECT * FROM `test`; +----+------+ | id | name | +----+------+ | 1 | | +----+------+ 1 row in set (0.00 sec) 實(shí)際上,MySQL并沒有去掉值為一個空格的字符串的前后空格,而是將其作為一個空字符串進(jìn)行存儲。而在查詢的時候,我們看到的是一個空字符串,看不到其中實(shí)際存在的空格。 因此,在存儲數(shù)據(jù)時,盡量避免存儲值為一個空格的字符串,以免在查詢的時候產(chǎn)生誤解或不便維護(hù)。