小编Sat*_*abu的帖子

使用连接表字段排序的Cakephp分页不起作用

具有连接表排序的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)

sorting pagination cakephp join

15
推荐指数
1
解决办法
6086
查看次数

在Mysql Perpared语句中增加set变量长度

    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变量的无限字符长度.请指教.

mysql prepared-statement

2
推荐指数
1
解决办法
3003
查看次数

标签 统计

cakephp ×1

join ×1

mysql ×1

pagination ×1

prepared-statement ×1

sorting ×1