db_update的多个条件

时间:2011-04-05 07:47:59

标签: drupal-7

在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();

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

1 个答案:

答案 0 :(得分:8)

你所写的内容相当于:

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

如果你想要OR条件,你需要将语句嵌套(不,它不是很直观):

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

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