我有一个包含“年”、“月”和“价格”列的表格。从年和月创建了一个变量来创建用于过滤表的日期。
SELECT
@date_create := STR_TO_DATE(CONCAT(`year`, '-', `month`, '-1'), '%Y-%m-%d'),`price`
FROM table
WHERE
@date_create >= '2023-05-01'
MYSQL 返回 0 个结果,但它不应该返回。查询出了什么问题?
我不确定您在 select 子句中定义的
@date_create
用户变量是否在 where 子句中可用。但您不应该使用这种方法。考虑以下查询,它避免了动态 SQL:
SELECT *
FROM yourTable
WHERE year > 2023 OR (year = 2023 AND month >= 5);