db_update 的多个条件

发布于 2024-10-30 12:45:14 字数 488 浏览 1 评论 0原文

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

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

In Drupal 7 simple updates work like this:

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

But what if I have multiple conditions( say nid >=3 and uid >=2). Writing something like:

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

does not seem to work. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我只土不豪 2024-11-06 12:45:14

您所编写的内容相当于:

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

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

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

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

What you have written will do the equivalent of:

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

If you wanted an OR conditional you need to nest the statements as such (no, it's not very intuitive):

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

There is also db_and() [default for chaining multiple condition methods] and db_xor() that you can use when nesting.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文