我有两张 struct 完全相同的桌子:

date (date)
title (varchar 275)

这两个表都包含从2021-01-01到2021-12-31的日期行

如果我在表1上运行此查询:

SELECT DISTINCT date FROM table1 WHERE date IN ('2021-01-02', '2021-01-04')

它返回以下各项的期望值:

2021-01-02
2021-01-04

然而,如果我在表2上运行它,我只得到1个结果,这是该范围内的最早日期.例如,如果我运行相同的查询,我只得到2021-01-02.如果我将查询更改为:

SELECT DISTINCT date FROM table2 WHERE date IN ('2021-01-04', '2021-01-06')

我只看到2021-04-04.如果我把日期改为‘2021-01-06’和‘2021-01-07’,我只能得到2021-01-06,依此类推.

如果我在Table1上运行完全相同的查询,它将返回所有预期值.我假设这一定是表中的不同,但它们具有完全相同的字段、字段类型、数据库排序规则等.它的行为就像有一个限制1.

编辑@josh: 如果我删除DISTINCT并运行以下查询:

SELECT date FROM table2 WHERE date IN ('2021-01-04', '2021-01-06')

它返回正确的日期(重复):

2021-01-04
2021-01-04
2021-01-04
...
2021-01-06
2021-01-06

将不同的后面添加到结果中(仅适用于表2):

2021-01-04

推荐答案

出于某种原因,您需要将date列转换为实际日期,这样您就可以这样做

SELECT DISTINCT date FROM table2 WHERE Date(date) IN ('2021-01-04', '2021-01-06')

Mysql相关问答推荐

如何改进对另一个表中多行的查询依赖性

MySQL RDS ALTER TABLE ENUM短暂中断了我的数据库连接

仅获取我不是最后一个 comments 者的博客帖子

Select 同一张表中的结果数?

即使在某些表中不匹配,如何从 MySQL 中的多个表中 Select 所有记录

如何在Mysql中使用With和Values

根据 Power Query 中的条件替换值

关联同一个表中的两列

连接两个表.使用连接列作为分组依据,然后根据时间戳 Select 最新行

SQL 根据多行值获取记录

SQL从字典中的键获取值

总行大小不超过 65535,但我得到行大小太大.所用表类型的最大行大小,不包括 BLOB,是 65535错误

我在查询中没有得到正确的结果

SQL 查找边界之间的值

此插页中的X是什么> X'3C2F756C3E'

MySQL:使用来自查询的信息创建一个新表

SQL 中的双杠 (||) 是什么意思?

带有 OuterRef 的简单子查询

MySQL连接查询使用like?

在 MySQL 中仅 Select 仅包含字母数字字符的行