MySQL docker映像不作为本地MySQL服务器使用
我的Windows 10 pc上安装了MySQL docker映像不作为本地MySQL服务器使用,mysql,sql,docker,Mysql,Sql,Docker,我的Windows 10 pc上安装了MySQL 5.7,我在云上的docker映像中使用了相同的版本。我正在使用docker hub的官方mysql图像 docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7 两者都是从一个sql文件填充的。本地和云上的数据完全相同。现在,我的问题是,我在本地和云上运行的查询结果不同。我正在附加用于查询输出的图像。本地的正确结果,而云上的docker图像提供了其他东西。我想知
MySQL 5.7
,我在云上的docker映像中使用了相同的版本。我正在使用docker hub的官方mysql图像
docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=secret -d mysql:5.7
两者都是从一个
sql
文件填充的。本地和云上的数据完全相同。现在,我的问题是,我在本地和云上运行的查询结果不同。我正在附加用于查询输出的图像。本地的正确结果,而云上的docker图像提供了其他东西。我想知道是什么原因
以下是查询:
SELECT YEAR(STR_TO_DATE(BIRTH_DATE, "%Y")) AS birthdate, COUNT(*) AS count
FROM customer
GROUP BY birthdate
HAVING COUNT(*) > 1
ORDER BY birthdate;
“本地和云上的数据完全相同。”。我不这么认为。在任何情况下,为什么要将DOB存储为字符串?将其存储为日期,只需使用
YEAR(BIRTH\u date)
。在这两种环境中尝试此查询,并查看数据中的不同之处:从客户处选择出生日期、出生日期(出生日期,“%Y”)、年份(出生日期,“%Y”)代码>同时选中选择@sql\u模式代码>在这两种环境中。由于您的图像没有标记,我不知道哪个是哪个。但是有MySQL命令提示符的一个显示了44条警告。很可能这就是问题所在。“本地和云上的数据完全相同。”。我不这么认为。在任何情况下,为什么要将DOB存储为字符串?将其存储为日期,只需使用YEAR(BIRTH\u date)
。在这两种环境中尝试此查询,并查看数据中的不同之处:从客户处选择出生日期、出生日期(出生日期,“%Y”)、年份(出生日期,“%Y”)代码>同时选中选择@sql\u模式代码>在这两种环境中。由于您的图像没有标记,我不知道哪个是哪个。但是有MySQL命令提示符的一个显示了44条警告。很可能这就是问题所在。