2017-11-27 13 views
0

これは私の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; 

[OK]をクリックします。結果は次のとおりです

11 
11 
17 

私のデータには何が起こりましたか? ps:スペースがあるかどうかをテストするのにtrim()を使用しましたが、そうではありません。

+0

データベーステーブルが異なります。 – Rafee

+0

a20171118sign * 1 *とa20171118sign –

+0

ここでオンラインsql fiddleを確認することができますhttp://sqlfiddle.com/#!9/017aaf/1 – Rafee

答えて

1

あなたが13805716757 の開始/終了(ユニコードE280AD)

でいくつか目に見えない文字を持っているあなたは、このコードでそれを見ることができるようだ。

HEX(LEFT(mobile, 1)) 

は正しい(ここを見て値):http://sqlfiddle.com/#!9/38339d/1 またはここにhttp://sqlfiddle.com/#!9/017aaf/8

+0

はい、それはありますトリムはそれをトリミングしない、奇妙な、いいえ? –

関連する問題