我有一个查询,其中包含以下内容:
$this->db->where(array(
'jobs.open_intentions' => 1,
'jobs.open' => 1,
'jobs.pending' => 0,
'jobs.awarded' => 0));
这工作正常,但我不喜欢这种格式,实际上我宁愿这样写
$this->db->where('jobs.open_intentions', 1)
->where('jobs.open', 1)
->where('jobs.pending', 0)
->where('jobs.awarded', 0);
我知道尼特采摘,但无论如何,我的问题是,有什么理由我应该选择一种方法而不是另一种方法,或者这只是一个偏好问题?
从
语义上讲,后者(多个where
(对我来说更像是多个AND
子句。对于前者,意图尚不清楚(不查看 API 文档(。
虽然后来的方法很常用,但为了简单和清晰的代码,你也可以这样做
$where = array(
'jobs.open_intentions' => 1,
'jobs.open' => 1,
'jobs.pending' => 0,
'jobs.awarded' => 0
);
$this->db->where($where);
我在后面的一个优点是你可以使用不同的where子句,例如or_where,where_in,or_where_in干净的代码,这在前面的代码中非常困难。但是,如果您使用单个运算符,则两者是相同的。