带where子句的Mysql优先级条件

带where子句的Mysql优先级条件,mysql,Mysql,在检查第一个条件时,我尝试检查两个条件,如果它为真,则忽略第二个条件。如果第一个条件为假,则检查第二个条件 这里有这样的问题 select * from region_daten inner join werte_inc where datum = today or datum = yesterday" 这里返回今天和昨天,因为两者都是真实的,但在上午11:30之前我只有昨天的日期,在上午11:30之后我有这两个日期。当我使用“或”时,我得到了两个日期的数据。但我需要显示,如果日期是今天的日期

在检查第一个条件时,我尝试检查两个条件,如果它为真,则忽略第二个条件。如果第一个条件为假,则检查第二个条件

这里有这样的问题

select * from region_daten inner join werte_inc where datum = today or datum = yesterday"

这里返回今天和昨天,因为两者都是真实的,但在上午11:30之前我只有昨天的日期,在上午11:30之后我有这两个日期。当我使用“或”时,我得到了两个日期的数据。但我需要显示,如果日期是今天的日期,我必须显示今天的日期数据。如果没有,我必须显示昨天的数据。

让我们创建一个真值表:

date = today | date = yesterday | desired result
-------------+------------------+---------------
true         | true             | true
true         | false            | true
false        | true             | true
false        | false            | false
如果根据您的问题,此表是正确的,则您要查找的是OR:

SELECT *
FROM table 
WHERE date = today OR date = yesterday

简单或应该足够。或者如果两者都为真,则应该返回,但我需要第一个条件是否为真,无需检查第二个条件。我只需要得到第一个或第二个条件。如果至少有一个条件为true,则返回true。我想这正是你需要的。如果date=today,则您希望为true,或给出该值。如果是date today,那么您需要检查另一个条件,在本例中,或者给出第二个条件的布尔值。试着写下所有四种可能性,然后试着用else算法评估它们,然后用or自己看看。所以你只想显示一条记录,而且只想显示今天或昨天的记录,不老?你说的完全正确,这是我理解的错误,事实上我得到了今天和昨天的数据,但我需要的首要任务是今天,如果今天的数据没有更新,那么就拿昨天的数据。因为我的数据库在上午11:00之后更新今天的数据,直到那时,我需要显示昨天的数据,之后当我的数据库用今天的日期更新时,我必须显示该数据。上午11:00后,我在数据库中获得了今天和昨天的数据。我可以使用maxdate获取最新的日期吗。请您显示一些示例数据和期望的结果吗?我喜欢这样选择*从区域\日期,其中DATAM=从区域\日期选择maxdatum当我的数据库使用新日期更新时,我获得更新的数据。