问题描述
|
这似乎是一个简单的问题,但我无法解决它。我创建了一个包含名称和地址的虚拟字段:
var $virtualFields = array(
\'name_address\' => \'CONCAT(Venue.name,\" - \",Venue.address)\'
);
有没有办法在这个上使用SUBSTR
? (PHP或MysqL很好-最佳/可行)。
我已经试过了(无济于事):
\'name_address\' => \'SUBSTR(CONCAT(Venue.name,Venue.address),50)\'
我还在CONCAT中的各个字段上尝试了SUBSTR。
解决方法
这绝对没有问题。唯一的错误是,您想到了MySQL中的SUBSTRING函数就像PHP中的SUBSTRING函数那样工作,计数从零开始。
但是,由于这不是PHP,因此您必须从
1
开始计数,并且一切都会正常进行。
像这样使用您的virtualField,它应该可以像您想要的那样工作:
var $virtualFields = array(
\'name_address\' => \'SUBSTRING(CONCAT(Venue.name,\" - \",Venue.address),1,50)\'
);
另外,请阅读MySQL手册中的SUBSTRING函数