MySQL用户定义的变量日期类型在where子句中

时间:2018-11-08 12:57:18

标签: mysql date variables user-defined

我尝试使用Mysql中的用户定义变量简化长时间查询。不幸的是,这些变量在where子句中的行为不符合预期-尤其是存储日期的变量。这是3个简化的查询:

SELECT id,
       @var_date := `date`
FROM   aroma_exchanges
WHERE  @var_date >= "2000-01-01" 

这将返回0行

另一个:

SELECT id,
       @var_date := `date`
FROM   aroma_exchanges
WHERE  Str_to_date(@var_date, "%y-%m-%d") >= "2000-01-01" 

这也返回0行。

SELECT id, 
       @var_date := `date` 
FROM   aroma_exchanges 
WHERE `date` >= "2000-01-01" 

这一行按预期工作,返回很多行。在我的情况下,date的定义非常复杂,在我的真实查询中,我使用了几次,因此,如果我可以将同一子查询存储到一个变量中并使用它,我不想重复5-10次根据我的需要。 问题:如何使第一个或第二个查询正常工作?谢谢。

0 个答案:

没有答案