1

私は次のSQLを持っています:

SELECT points
FROM   memberevents AS me
WHERE  memberid = memberevents.memberid
ORDER  BY id DESC LIMIT 3;

以下を返します。

**points** 
    123
    234
    146

しかし、次のように返される SQL を作成したいと考えています (「-」でポイントを連結する 1 つのレコードのみ)。

**points**

123-234-146

出来ますか?

4

2 に答える 2

2

試してくださいGROUP_CONCAT

SELECT GROUP_CONCAT (P.points SEPARATOR '-')
FROM (
  SELECT points
  FROM   memberevents AS me
  WHERE  memberid = memberevents.memberid
  ORDER  BY id DESC LIMIT 3) P
GROUP BY P.points;
于 2013-07-09T14:07:46.347 に答える
1

関数が必要ですgroup_concat()が、特定の方法で:

SELECT substring_index(group_concat(points order by id desc separator '-'), '-', 3)
FROM   memberevents AS me
WHERE  memberid = memberevents.memberid;

このorder by句は、元の を模倣していますorder by。はseparator、必要なセパレーターを使用します。はsubstring_index()、 と同様に、最初の 3 つの要素を選択しlimit 3ます。

于 2013-07-09T14:09:16.253 に答える