gpt4 book ai didi

mysql - cakephp 带有子查询和 if 的虚拟字段

转载 作者:行者123 更新时间:2023-11-29 21:15:07 25 4
gpt4 key购买 nike

我有一个Categoryname field 。我希望能够使用 PartnerCategory 覆盖该名称表并加入它。

所以通常我会得到 Category像这样:

$options = array(
'contain' => array('PartnerCategory'),
'conditions' => array(
'Category.slug' => $slug,
'Category.status' => true,
)
);
$category = $this->Category->find('first', $options);

然后检查,如果 ParentCategory.name不为空并替换 Category.name有了它。

用 php 覆盖名称很乏味,所以我检查了虚拟字段。

我可以覆盖Category.name使用这个:

$this->virtualFields = array(
'name' => 'SELECT name FROM app_partner_categories WHERE category_id = 1 AND partner_id = 60'
);

但是如果namePartnerCategory表为空或未找到数学,Category.name将为空。

如何覆盖 Category.name仅当 PartnerCategory.name找到了吗?

最佳答案

不确定,但这可能是一个可能的解决方案:

$joins = array(array('table' => 'app_partner_categories',
'alias' => 'PartnerCategory',
'type' => 'INNER',
'conditions' => array(
'PartnerCategory.category_id = Category.id'
)
)
);

$options = array(
'fields' => array('IF(PartnerCategory.name IS NULL or PartnerCategory.name = "", Category.name, PartnerCategory.name) as overwritten_name'),
'joins' => $joins,
'conditions' => array(
'Category.slug' => $slug,
'Category.status' => true,
)
);
$category = $this->Category->find('first', $options);

关于mysql - cakephp 带有子查询和 if 的虚拟字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36012915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com