首页 > 解决方案 > MySQL:WHERE table.column(current_date),如果今天日期的列值等于特定值,则评估表达式

问题描述

在此先感谢您的帮助 。

我被卡住了,因为我想过滤来自当前被阻止但试图执行交易的用户的交易。问题是,被解锁的人的交易仍然显示在结果中。因此,理想情况下,我只想显示在今天的状态为“被阻止”的被阻止用户的交易,而不是同时被解除阻止的交易。

我有两个表,我想按 table.column(今天的日期)过滤,我不知道是否有 if 语句或三元表达式可以帮助我在特定时间(今天)评估列的值)。

Table 1 : suspended

| blacklisted   | PHONE      | date_suspended | 
+---------+-------------+------+-----+---------
| UNBLOCKED     | +34XXXXXXX | 02-03-19  |    
| BLOCKED       | +34XXXXXXX | 03-05-26  |    
| BLOCKED       | +34XXXXXXX | 23-09-20  |    
| BLOCKED       | +34XXXXXXX | 26-02-18  |    
| UNBLOCKED     | +34XXXXXXX | 15-03-18  |     

Table 2 : transaction

 | PHONE      | transaction_date | 
+---------+-------------+------+-----+---------+-------+
| +34XXXXXXX  | 06-03-19  |     
|  +34XXXXXXX | 13-05-26  |     
|  +34XXXXXXX | 23-09-20  |     
|  +34XXXXXXX | 06-02-18  |     
|  +34XXXXXXX | 05-03-18  |     



SELECT S.blacklisted, T.date_transaction 
FROM suspended S INNER JOIN transaction T ON S.phone = T.phone
WHERE IF(S.blacklisted(current_date) like '%blocked%')

谢谢!

标签: mysql

解决方案


推荐阅读