具有连接表排序的Cakephp分页对于连接表字段不起作用.但是对于自定义sql join查询工作正常.请帮帮我出来.
请参阅下面的示例代码..我按顺序有Artist.name连接表字段.
$this->paginate = array(
'fields' => array(
'id',
'Song.title',
'Song.date',
'Artist.id AS artist_id',
'Artist.name AS artist_name',
'COUNT(SongViews.id) AS views'
),
'group' => array('ArtistsSong.song_id'),
'recursive' => 0,
'limit' => 20,
'joins' => array(
array(
'table' => 'tbl_artists_songs',
'alias' => 'ArtistsSong',
'conditions'=> array('Song.id = ArtistsSong.song_id')
),array(
'table' => 'tbl_artists',
'alias' => 'Artist',
'conditions'=> array('Artist.id = ArtistsSong.artist_id')
),array(
'table' => 'tbl_song_views',
'alias' => 'SongViews',
'type' => 'left',
'conditions'=> array('SongViews.song_id = ArtistsSong.song_id')
),
),
'order' => array('Artist.name'=>'asc')
);
Run Code Online (Sandbox Code Playgroud)
set @sql1 = '';
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'MAX(IF(field_id = ''',
field_id,
''', value, NULL)) AS `',
field_id,'`'
)
) INTO @sql1
FROM content_details;
SET @sql1 = CONCAT('SELECT ', @sql1, ' FROM content_details GROUP BY content_id');
select @sql1;
PREPARE stmt FROM @sql1;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
在上面的代码中,@ sql1变量仅存储一些有限的字符.这里我动态地连接字符串.我不知道将来会发生的弦的确切总长度.我的问题是我们如何设置$ sql1变量的无限字符长度.请指教.