use*_*359 2 mysql postgresql query
我正在编写一个 Drupal 模块,我希望它在 PostgreSQL 和 MySQL 之间是不可知的。我有一个从条件中获取其值的字段,我最初将它写为IF()
. 然后我发现这IF()
是一个 MySQL 主义。所以,我查找了 PostgreSQL 的条件语句,CASE
似乎是最好的工具。
但是,我注意到以 PostgreSQLCASE
结尾END
,而在MySQL 中以END CASE
. 这会破坏我对数据库不可知论的希望吗?我可以用条件编写一个不可知的查询吗?
如果您在 SELECT 语句中使用 CASE 表达式,您应该查看MySQL 文档中的此页面。如图所示,您END
用来结束 CASE 表达式。
另一方面,如果您将 CASE 用作流控制语句的一部分(就像您可能在存储过程中使用以有条件地执行其他语句一样),则两个数据库都将用于END CASE
结束 CASE 语句。