0

(1,2,3 - 1,2,3 - 1,2,3) 行を交互に並べて MYSQL の結果を並べ替える方法について以前に質問したことがありますが、この回答が見つかりました

私は自分の状況にコードを適用しようとしましたが、これが私が得たものです:

SELECT 
x.id, 
x.pic0,
x.bio,
x.bio2,
x.site,
x.url,
x.applet
FROM 
(SELECT 
t.id, 
t.pic0,
t.bio,
t.bio2,
t.site,
t.url,
t.applet
CASE
WHEN @site != t.site THEN @rownum := 0
WHEN @site = t.site THEN @rownum := @rownum + 1
ELSE @rownum
END AS rank,
@site := t.site
FROM ".$table." t,
(SELECT @rownum := 0, @site ORDER BY t.site) r) x 
ORDER BY x.rank, x.site

これは私が得ている MYSQL エラーです - サーバーは MYSQL 5.1 を使用しています

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CASE WHEN @site != t.site THEN @rownum := 0 WHEN @site = t.site THEN @rownum :' at line 18
  1. 私は完全な初心者であり、このクエリを理解することすらできません:)したがって、何が問題なのか少しもわかりません。

  2. このクエリに WHERE 条件を追加する方法は?

    WHERE bio LIKE 'value' など

4

1 に答える 1

0

あなたは欠けています,

t.applet , CASE WHEN @site ...
         ^................................here

ここに追加しwhereます:

FROM ".$table." t,
(SELECT @rownum := 0, @site ORDER BY t.site) r) x 

WHERE bio LIKE 'value'

ORDER BY x.rank, x.site
于 2012-08-15T13:50:20.673 に答える