我正在处理一些报告,我正在尝试创建一个查询,该查询将根据所选日期选择不同的查询,这是我试图实现的简化版本
SELECT *
FROM
IF(YEAR('###date start###'=2011),table_2011,table)
WHERE
date_start BETWEEN '###date start###' AND '###date end###'
###date start###
是用户输入的###date end###
参数。
我不能使用该语言根据日期选择不同的表,因为这只是一个示例,我可能传递了其他参数来选择不同的表。
我在想我需要创建一个新的 preg_replace 并强制创建查询的人添加类似的东西,###if(test,val2,val2)###
但如果 mysql 已经可以做到这一点,我不想重新发明热水。
谢谢
编辑
在等待更好的解决方案时,我将“搜索替换”功能从一个简单的:
###search###
=> value
(其中 ###search### 显示给最终用户作为手动输入的字段),也接受一个新的字段格式为
LLLlabel[option:value,option:value,option:value,....]LLL
不是最好的解决方案,因为我希望我只能使用 MySQL 来做到这一点,因为这个解决方案只是让最终用户不得不选择一个额外的参数。
请记住,问题只是查询的一个非常简化的版本,查询可以是子查询、联合或连接的一部分,而不仅仅是time
分隔