0

これは簡単な質問のように思えますが、うまくいきません。名前と住所を組み合わせた仮想フィールドを作成しました。

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 を試しました。

4

1 に答える 1

2

これはまったく問題ありません。あなたの唯一の間違いは、MySQL の SUBSTRING 関数が、カウントがゼロから始まる PHP の関数のように機能すると考えたことです。しかし、これは PHP ではないので、カウントを開始する必要が1あり、すべて正常に動作します。

このように virtualField を使用するだけで、思いどおりに動作するはずです。

var $virtualFields = array(
    'name_address' => 'SUBSTRING(CONCAT(Venue.name, " - ", Venue.address),1,50)'
);

また、 MySQL マニュアルの SUBSTRING 関数を読んでください。

于 2011-05-25T19:48:31.153 に答える