#php #cakephp #substr #concat
#php #cakephp #substr #объединение
Вопрос:
Это кажется простым вопросом, но я не могу заставить его работать. Я создал виртуальное поле, которое объединяет имя и адрес:
var $virtualFields = array(
'name_address' => 'CONCAT(Venue.name, " - ", Venue.address)'
);
Есть ли способ использовать SUBSTR
для этого? (PHP или MYSQL подойдут — в зависимости от того, что лучше / работает).
Я пробовал это (безрезультатно):
'name_address' => 'SUBSTR(CONCAT(Venue.name, " - ", Venue.address),0,50)'
Я также пробовал SUBSTR для отдельных полей в CONCAT.
Ответ №1:
Это абсолютно не проблема. Ваша единственная ошибка заключается в том, что вы думали, что функция SUBSTRING в MySQL работает так же, как в PHP, где счетчик начинается с нуля. Но поскольку это не PHP, вы должны начать свой подсчет с 1
, и все будет работать нормально.
Просто используйте свое виртуальное поле подобным образом, и оно должно работать так, как вы хотите:
var $virtualFields = array(
'name_address' => 'SUBSTRING(CONCAT(Venue.name, " - ", Venue.address),1,50)'
);
Кроме того, ознакомьтесь с функцией SUBSTRING в руководстве по MySQL