これは 50% のノイズのケースである可能性が非常に高いです。行の 50% 以上にある単語がある場合、mysql はそれをノイズワードと見なし、スコアリング (したがってランキング) の際に無視します。これは、オプションにのみ適用されNATURAL LANGUAGE MODE
ます。
つまらないことではありませんが、引用符なしで完全にうまく機能するはずです:
mysql> select * from table1;
+---------+------+------+-------------+
| autonum | ID | name | metavalue |
+---------+------+------+-------------+
| 1 | 1 | Rose | Drinker |
| 2 | 1 | Rose | Nice Person |
| 3 | 1 | Rose | Runner |
| 4 | 2 | Gary | Player |
| 5 | 2 | Gary | Funny |
| 6 | 2 | Gary | NULL |
| 7 | 2 | Gary | Smelly |
+---------+------+------+-------------+
7 rows in set (0.00 sec)
mysql> select ID, group_concat(coalesce(metavalue,'Empty')) as Test from table1 group by ID order by Test;
+------+----------------------------+
| ID | Test |
+------+----------------------------+
| 1 | Drinker,Nice Person,Runner |
| 2 | Player,Funny,Empty,Smelly |
+------+----------------------------+
2 rows in set (0.01 sec)
mysql> select ID, group_concat(coalesce(metavalue,'Empty')) as Test from table1 group by ID order by Test desc;
+------+----------------------------+
| ID | Test |
+------+----------------------------+
| 2 | Player,Funny,Empty,Smelly |
| 1 | Drinker,Nice Person,Runner |
+------+----------------------------+
2 rows in set (0.00 sec)
Server version: 5.5.24-0ubuntu0.12.04.1 (Ubuntu)
(そして、この種のクエリは、職場の Windows 5.1.x インストールでも問題なく動作します)