这似乎是一个简单的问题,但我无法让它发挥作用。我创建了一个结合了名称和地址的虚拟字段:
var $virtualFields = array(
'name_address' => 'CONCAT(Venue.name, " - ", Venue.address)'
);
有没有办法在此使用SUBSTR
? (PHP或MYSQL很好 - 无论哪个最好/有效)。
我试过这个(无济于事):
'name_address' => 'SUBSTR(CONCAT(Venue.name, " - ", Venue.address),0,50)'
我还在CONCAT中的各个字段上尝试过SUBSTR。
答案 0 :(得分:2)
这绝对没问题。您唯一的错误是,您认为MySQL中的SUBSTRING函数的工作方式类似于PHP中计数从零开始的函数。
但由于这不是PHP,你必须从1
开始计算,一切都会正常。
只需像这样使用你的虚拟场,它应该像你想要的那样工作:
var $virtualFields = array(
'name_address' => 'SUBSTRING(CONCAT(Venue.name, " - ", Venue.address),1,50)'
);
另外,请阅读SUBSTRING函数in the MySQL manual