我试图用mysql中的用户定义变量简化我的长查询。不幸的是,这些变量在where子句中的行为并不像预期的那样——尤其是存储在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次,如果我可以将它存储到一个变量中,并根据需要使用它。问题:如何使第一个或第二个查询正常工作?谢谢。
暂无答案!
目前还没有任何答案,快来回答吧!