| Bug #85463 | varchar(64) varchar(255) lead to bug | ||
|---|---|---|---|
| Submitted: | 15 Mar 2017 11:29 | Modified: | 16 Mar 2017 1:27 |
| Reporter: | mi ke | Email Updates: | |
| Status: | Can't repeat | Impact on me: | |
| Category: | MySQL Server: Data Types | Severity: | S2 (Serious) |
| Version: | 5.7 | OS: | Windows |
| Assigned to: | CPU Architecture: | Any | |
| Tags: | count(disticnt), type varchar(255) varchar(64) | ||
[15 Mar 2017 11:29]
mi ke
[15 Mar 2017 11:34]
mi ke
however , when i create table use varchar(64),the way_1 is equal to way_2;
[15 Mar 2017 12:12]
MySQL Verification Team
Thank you for the bug report. I couldn't repeat with recent source server:
c:\dbs>c:\dbs\5.7\bin\mysql -uroot --port=3570 -p --local-infile test --prompt="mysql 5.7 > "
Enter password: ******
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.19 Source distribution PULL: 2017-MAR-07
Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql 5.7 > use test
Database changed
mysql 5.7 > LOAD DATA LOCAL INFILE 'C:\\tmp\\uid_utf8.csv'
-> INTO TABLE temp
-> CHARACTER SET utf8
-> fields terminated by ',' optionally enclosed by '"' ESCAPED BY '"'
-> lines terminated by '\n' ignore 1 lines;
Query OK, 167778 rows affected (3.82 sec)
Records: 167778 Deleted: 0 Skipped: 0 Warnings: 0
mysql 5.7 > select count(distinct uid)
-> from
-> (SELECT distinct uid FROM temp) as a;
+---------------------+
| count(distinct uid) |
+---------------------+
| 35758 |
+---------------------+
1 row in set (0.22 sec)
mysql 5.7 > SELECT count(distinct uid) FROM temp;
+---------------------+
| count(distinct uid) |
+---------------------+
| 35758 |
+---------------------+
1 row in set (0.09 sec)
mysql 5.7 > show create table temp;
+-------+------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+------------------------------------------------------------------------------------------------+
| temp | CREATE TABLE `temp` (
`uid` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
[16 Mar 2017 1:07]
mi ke
hello, when i use ENGINE=InnoDB DEFAULT CHARSET=latin1 , i have a equal results; however,when i user ENGINE=InnoDB DEFAULT CHARSET=utf8;, i have two differernt results; can you try again to user ENGINE=InnoDB DEFAULT CHARSET=utf8 ?
[16 Mar 2017 1:27]
mi ke
mysql> SHOW VARIABLES LIKE 'character%'; +--------------------------+---------------------------------------------------------+ | Variable_name | Value | +--------------------------+---------------------------------------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ | +--------------------------+---------------------------------------------------------+ 8 rows in set
[16 Mar 2017 11:01]
MySQL Verification Team
Thank you for the feedback:
mysql 5.7 > SHOW GLOBAL VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | c:\dbs\5.7\share\charsets\ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql 5.7 > create table temp (uid varchar(255) null)ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.20 sec)
mysql 5.7 > show create table temp;
+-------+----------------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------------+
| temp | CREATE TABLE `temp` (
`uid` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql 5.7 > LOAD DATA LOCAL INFILE 'C:\\tmp\\uid_utf8.csv'
-> INTO TABLE temp
-> CHARACTER SET utf8
-> fields terminated by ',' optionally enclosed by '"' ESCAPED BY '"'
-> lines terminated by '\n' ignore 1 lines;
Query OK, 167778 rows affected (2.18 sec)
Records: 167778 Deleted: 0 Skipped: 0 Warnings: 0
mysql 5.7 > select count(distinct uid)
-> from
-> (SELECT distinct uid FROM temp) as a;
+---------------------+
| count(distinct uid) |
+---------------------+
| 35758 |
+---------------------+
1 row in set (0.48 sec)
mysql 5.7 > SELECT count(distinct uid) FROM temp;
+---------------------+
| count(distinct uid) |
+---------------------+
| 35758 |
+---------------------+
1 row in set (0.20 sec)
mysql 5.7 > SHOW VARIABLES LIKE "%version%";
+-------------------------+---------------------------------------+
| Variable_name | Value |
+-------------------------+---------------------------------------+
| innodb_version | 5.7.19 |
| protocol_version | 10 |
| slave_type_conversions | |
| tls_version | TLSv1,TLSv1.1 |
| version | 5.7.19 |
| version_comment | Source distribution PULL: 2017-MAR-07 |
| version_compile_machine | x86_64 |
| version_compile_os | Win64 |
+-------------------------+---------------------------------------+
8 rows in set (0.00 sec)
mysql 5.7 >
