1

ExpressionEngine 1.6.4(非常に古いバージョン)のこのコードでMySQLエラーが発生します

{exp:query  limit="10" paginate="bottom"
    sql="SELECT 'gallery' AS `content_type`, `cat_id` AS `entry_id`, `recent_entry_date` AS `entry_date`
        FROM `exp_gallery_categories`
        WHERE `gallery_id` = 9 AND total_files > 0
        UNION
        SELECT 'video' AS `content_type`, `entry_id`, `entry_date`
        FROM `exp_weblog_titles`
        WHERE `weblog_id` = 6 ORDER BY `entry_date` DESC"

    }
<p>{content_type} - {entry_id} - {entry_date format="%d %F %Y"}</p>
{paginate}{pagination_links}{/paginate}
{/exp:query}

MySQLはこれを返します:

MySQL ERROR: Error Number: 1054
Description: Unknown column 'entry_date' in 'order clause'
Query: SELECT COUNT(*) AS count FROM `exp_gallery_categories` WHERE `gallery_id` = 9 AND total_files > 0 UNION SELECT COUNT(*) AS count FROM `exp_weblog_titles` WHERE `weblog_id` = 6 ORDER BY `entry_date` DESC

EEがMySQLの前にクエリを変更して失敗させているようです(SQLクライアントではこれはスムーズに機能します)。

4

2 に答える 2

1

答えはmod.query.phpにパッチを当ててクエリの変更を止めることです

$query = $DB->query("SELECT COUNT(*) AS count FROM ({$sql}) AS query");

Dom Stubbs による究極の詳細な回答は次のとおりです。ExpressionEngine 1 Query Module and Ordering SQL UNION

于 2012-12-11T18:06:19.827 に答える
0

私はあなたの選択したクエリが機能すると仮定しています。以下をお試しください:

 sql="SELECT * FROM 
        (SELECT gallery AS content_type, cat_id AS entry_id, 
          recent_entry_date AS entry_date
          FROM exp_gallery_categories
          WHERE gallery_id = 9 AND total_files > 0
          UNION
          SELECT video AS content_type, entry_id, entry_date
          FROM exp_weblog_titles
          WHERE weblog_id= 6 
         ) AS TEMP
       ORDER BY entry_date DESC"

編集:カウントクエリ:

         SELECT COUNT(*) AS count 
         FROM 
            ( SELECT COUNT(*) AS count,
              recent_entry_date AS entry_date
              FROM exp_gallery_categories 
              WHERE gallery_id = 9 AND total_files > 0 
              UNION 
              SELECT COUNT(*) AS count,
              entry_date
              FROM exp_weblog_titles 
              WHERE weblog_id = 6 
           ) AS TEMP 
         ORDER BY entry_date DESC
于 2012-12-10T04:11:44.353 に答える