【问题标题】:Multiple conditions for db_updatedb_update 的多个条件
【发布时间】:2011-04-05 07:47:58
【问题描述】:

在 Drupal 7 中,简单更新的工作方式如下:

$num_updated = db_update('joke')
->fields(array(
'punchline' => 'Take my wife please!',
))
->condition('nid', 3, '>=')
->execute();

但是如果我有多个条件(比如 nid >=3 和 uid >=2)怎么办。像这样写:

$num_updated = db_update('joke')
->fields(array(
'punchline' => 'Take my wife please!',
))
->condition('nid', 3, '>=')
->condition('uid', 2, '>=')
->execute();

似乎不起作用。有什么想法吗?

【问题讨论】:

标签: drupal-7


【解决方案1】:

你所写的将相当于:

'...WHERE (NID >= 3 AND UID >= 2)"

如果你想要一个 OR 条件,你需要像这样嵌套语句(不,这不是很直观):

->condition(db_or()->condition('NID'', 3, '>=')->condition('UID', 2, '>='))

还有 db_and() [默认用于链接多个条件方法] 和 db_xor() 可以在嵌套时使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-24
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2012-12-28
    • 2015-02-07
    相关资源
    最近更新 更多