在MySQL中,字段名中包含点“.”的情况需要特别注意。因为MySQL中的点“.”是特殊字符,如果字段名中包含点,则需要使用反引号 “`” 来包住字段名,才能正确的使用它。
CREATE TABLE `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user.name` varchar(255) DEFAULT NULL, `user.address` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
如上代码所示,大家创建了一张名为mytable的表,在其中定义了一些包含点的字段名,比如user.name和user.address。需要注意的是,这些包含点的字段名都需要使用反引号包住,才能正常地使用。
在使用包含点的字段名时,需要特别注意sql语句的写法,因为点“.”会被误认为是语句的分隔符。
SELECT `user.name`, `user.address` FROM `mytable` WHERE `id`=1;
如上代码所示,大家在SQL语句中使用了包含点的字段名,必须使用反引号来包住字段名,才能正常地查询。
在MySQL中,尽可能避免使用包含点的字段名,以免在未来的使用中出现问题。如果确实必须使用包含点的字段名,那么在定义表和使用sql语句时,一定要注意正确的用法。