我有一个名为“Contacts”的表,我想创建一个名为customer的虚拟字段。
联系人有列,名为first_name,last_name,company。
我通过连接三个
来创建虚拟字段public $virtualFields = array(
'customer' => "CONCAT(Contact.first_name, ' ', Contact.last_name, ' ', Contact.company)"
);
但是如何创建它以便它只显示公司,但如果它是null或空字符串,它将显示名字和姓氏
答案 0 :(得分:6)
您可以尝试将SQL IF语句放入其中:
public $virtualFields = array(
'customer' => "IF(Contact.company IS NULL OR Contact.company = '', CONCAT(Contact.first_name, ' ', Contact.last_name, ' ', Contact.company), Contact.company)"
);
就is null or is empty
而言,您的数据库是否没有一致的空值?如果没有,它应该,你应该解决它......