0

MySQLに3つのテーブルがあります

fruit

id| fruit
--+-------
1 | apple
2 | banana
3 | mango
4 | plum
5 | pear
6 | cherry

list

id| name
--+------------
1 | first list
2 | second list

list_content

id| list_id | fruit_id | active
--+---------+----------+-------
1 |1        |1         |1
2 |1        |2         |1
3 |1        |3         |1
4 |2        |1         |0
5 |2        |6         |1
6 |2        |5         |1
7 |2        |4         |1
8 |2        |3         |1

結果として、id降順で並べられたリストが必要です。最大3つのコンマ区切りのアクティブな要素(active= 1の場合)fruit.nameが昇順で並べられています。このような

lists  | fruits
-------+------------------
list 2 | cherry, mango, pear
list 1 | apple, banana, mango
4

1 に答える 1

0

SUBSTRING_INDEXを使用して、最初の3つのフルーツのみを取得できます。

SUBSTRING_INDEX(GROUP_CONCAT(IF(active = 1, fruit.name, null) ORDER BY fruit.name ASC),',',3)
于 2012-07-30T15:11:43.950 に答える