mySQL选择通过参数评估哪个查询

时间:2014-10-06 11:38:11

标签: sql mysqli

我有一个像这样的查询:

SELECT IF(@param = 42, 'static', SELECT ... );

但它不起作用,因为我无法在IF()中插入SELECT语句。我的问题是我不能这样做(在sql之外使用if-then语句)因为“架构限制”。

选择是否评估基于参数值的查询的任何解决方案?

1 个答案:

答案 0 :(得分:2)

您不需要select

select (case when @param = 42 then 'static' else date_format(now(), '%Y-%m-%d') end)

请注意,您尝试混合两种不同的类型 - 日期时间和字符串。您应该使用首选格式将日期时间显式转换为字符串。

您可以使用if()来撰写此内容。 case稍微更通用,也是ANSI标准。