Mysql 插入相同的数字,结果不同

Mysql 插入相同的数字,结果不同,mysql,Mysql,这是我的sql CREATE TABLE `a20171118sign` ( `id` int(11) NOT NULL, `name` varchar(255) NOT NULL COMMENT '姓名', `mobile` varchar(13) DEFAULT NULL COMMENT '手机', `status` varchar(1) DEFAULT '0' COMMENT '状态,0为未签到,1为已签到', `ip` varchar(15) DEFAULT

这是我的sql

CREATE TABLE `a20171118sign` (
   `id` int(11) NOT NULL,
   `name` varchar(255) NOT NULL COMMENT '姓名',
   `mobile` varchar(13) DEFAULT NULL COMMENT '手机',
   `status` varchar(1) DEFAULT '0' COMMENT '状态,0为未签到,1为已签到',
   `ip` varchar(15) DEFAULT NULL COMMENT 'IP地址',
   `date` varchar(20) DEFAULT NULL COMMENT '签到时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `a20171118sign1` 
  (`id`, `name`, `mobile`, `status`, `ip`, `date`) 
VALUES
  (1, 'test1', '18995181962', '0', NULL, NULL),
  (2, 'test2', '18908178884', '0', NULL, NULL),
  (3, 'test3', '‭13805716757‬', '0', NULL, NULL);

SELECT LENGTH(mobile) FROM a20171118sign1;
好的,有件事很有趣。结果如下

11
11
17
我的数据怎么了?
ps:我使用trim测试是否有一些空格,但它不是。

似乎在开始/结束时有一些不可见的字符‭13805716757‬ unicode E280AD

您可以通过以下代码看到它:

HEX(LEFT(mobile, 1))
请看这里的正确值:
或者此处

您的数据库表不同。a20171118sign*1*和a20171118sign您可以在此处检查联机sql FIDLE是,您可以看到最后一个电话号码的长度是17,而不是11。我想这是个问题。是的,但奇怪的是,修剪没有修剪它,不是吗?@DanielE。修剪只处理空格字符。所以不,这是有道理的