-1

私は次のような列を持つ16k行のテーブルを持っています

ID, author_name, letter;(ここで、文字は名からの最初の文字です)

azからの文字ごとに3人のグループで著者を一覧表示するSQLクエリを作成したい

お気に入り:

A

Albert, Ana, Antony,

B

Ben, Boston, Bell,
このクエリを作成するにはどうすればよいですか?ありがとうございました。

4

2 に答える 2

1

これを試して、 :

set @counter =0, @letter:=''; 

select * from 
(select @counter:=if(letter=@letter, @counter+1,1) as counter, @letter = letter,  author
from table
order by letter, author) as t 
where counter<=3
order by letter, name

以前の値と比較し、文字が変更されたときに番号を付け直して、それ以外の場合はインクリメントすることで機能します。

于 2013-03-26T18:58:14.163 に答える
0

私はあなたのためにクエリを作成しました

SELECT GROUP_CONCAT(id) FROM TABLE NAME ORDER BY id 
SELECT GROUP_CONCAT(author_name) FROM TABLE NAME ORDER BY id 
SELECT GROUP_CONCAT(letter) FROM TABLE NAME ORDER BY id 

これで、次のような結果が得られます。

A

Albert, Ana, Antony,

B

Ben, Boston, Bell, 

http://www.mysqlperformanceblog.com/2006/09/04/group_concat-useful-group-by-extension/

于 2013-03-26T18:54:54.383 に答える