【发布时间】:2021-03-01 18:18:02
【问题描述】:
我需要根据某个条件更新数据库中的所有节点,并且我需要这个更新是有条件的。如果某个字段等于某个值,那么修改后的值就是X,否则,值就是y,更准确地说,我需要类似于sql中的case语句的东西。
Update [node]
Set [field] = CASE WHEN [field] IN (value1, value2, ...) THEN X ELSE Y END
WHERE [field] = value
【问题讨论】:
-
到目前为止你有什么尝试?
-
我对Drupal不太了解,我认为Drupal可能提供了一个功能,可以一次修改所有节点,而不是把所有节点一个一个循环,然后更新每个节点单独来说,那么Drupal中有这样的功能吗?我现在所做的就是使用三元运算符在两个值之间进行选择来设置并在节点对象上使用set函数。
-
可以直接执行SQL查询吗?或者你希望它从 Drupal 中执行?
-
我想通过 Drupal 来实现这个,因为它的数据库是不寻常的,它不能通过常规查询语句添加或删除。关于它的数据库是不寻常的,基于Drupal构建的站点中的每个字段都有一对表,因此您必须使用Drupal提供的功能与它的数据库进行交互
标签: drupal-8