0

この問題に対する多くの想定される解決策を見てきましたが、まだこれを機能させることができません。

SELECT Year FROM (SELECT DISTINCT YEAR(detDate1) AS Year 
FROM growl_details WHERE publish = 'y' AND pubNews = 'y' 
UNION 
SELECT DISTINCT YEAR(detDate1) AS Year FROM growl_pl_details
WHERE publish = 'y' AND pubNews = 'y') AS t ORDER BY 'Year' ASC

私は 2 つのテーブル、growl_details と growl_pl_details を持っています。情報が存在する年だけを表示するようにしようとしています。これを使用して、その年に関するデータ ページへのリンクを含むテーブルを作成します。

明らかに年を順番に表示したいのですが、上記のコードは年を個別に並べているようで、互いに続きます..

何か案は?

4

1 に答える 1

0

あなたのクエリ(私が読めるようにフォーマットされています):

SELECT Year
FROM (SELECT DISTINCT YEAR(detDate1) AS Year
      FROM growl_details
      WHERE publish = 'y' AND pubNews = 'y'
      UNION
      SELECT DISTINCT YEAR(detDate1) AS Year
      FROM growl_pl_details
      WHERE publish = 'y' AND pubNews = 'y'
     ) AS t
ORDER BY 'Year' ASC;

問題はorder by節によるものです。一重引用符を逆引用符に変更してみてください。

ORDER BY `Year` ASC;

文字列定数には一重引用符が使用されます。逆引用符は物の名前を囲みます。したがって、元のクエリは定数による順序付けでした。これにより、任意の順序付けが生成されます。

于 2013-08-10T16:53:02.153 に答える