数据库不可知条件

use*_*359 2 mysql postgresql query

我正在编写一个 Drupal 模块,我希望它在 PostgreSQL 和 MySQL 之间是不可知的。我有一个从条件中获取其值的字段,我最初将它写为IF(). 然后我发现这IF()是一个 MySQL 主义。所以,我查找了 PostgreSQL 的条件语句,CASE似乎是最好的工具。

但是,我注意到以 PostgreSQLCASE结尾END,而在MySQL 中以END CASE. 这会破坏我对数据库不可知论的希望吗?我可以用条件编写一个不可知的查询吗?

dmc*_*dmc 7

如果您在 SELECT 语句中使用 CASE 表达式,您应该查看MySQL 文档中的此页面。如图所示,您END用来结束 CASE 表达式。

另一方面,如果您将 CASE 用作流控制语句的一部分(就像您可能在存储过程中使用以有条件地执行其他语句一样),则两个数据库都将用于END CASE结束 CASE 语句。