用于创建查询过滤器的MYSQL变量

问题描述 投票:0回答:1

我有一个包含“年”、“月”和“价格”列的表格。从年和月创建了一个变量来创建用于过滤表的日期。

SELECT
@date_create := STR_TO_DATE(CONCAT(`year`, '-', `month`, '-1'), '%Y-%m-%d'),`price`
FROM table
WHERE
@date_create >= '2023-05-01'

MYSQL 返回 0 个结果,但它不应该返回。查询出了什么问题?

mysql variables
1个回答
0
投票

我不确定您在 select 子句中定义的

@date_create
用户变量是否在 where 子句中可用。但您不应该使用这种方法。考虑以下查询,它避免了动态 SQL:

SELECT *
FROM yourTable
WHERE year > 2023 OR (year = 2023 AND month >= 5);
© www.soinside.com 2019 - 2024. All rights reserved.