Naoya Murakami
visio****@gmail*****
2014年 4月 17日 (木) 13:24:55 JST
お世話になっております。村上です。 失礼しました。本件、再現条件は、関数を使ってORDER BYをすることです。 関数を使わなければ取得できます。 mysql> SELECT name FROM Tags ORDER BY name ASC; +---------+ | name | +---------+ | Linux | | MySQL | | groonga | | mroonga | +---------+ 4 rows in set (0.00 sec) mysql> SELECT name FROM Tags ORDER BY MID(name,1,1) ASC; +------+ | name | +------+ | | | | | | | | +------+ 4 rows in set (0.00 sec) 以上、よろしくお願いします。 2014年4月17日 13:02 Naoya Murakami <visio****@gmail*****>: > お世話になっております。村上です。 > > ・事象 > Mroongaのテーブル参照先の値をSQLでORDER BYすると値を取得できません。 > ORDER BYしない場合は値を取得できます。 > > この事象は仕様でしょうか? > > タグの一覧として使ってたら、上記のような事象が発生しました。 > 他に手段はありますのでさほど困ってはいません。 > 仕様であればそれで問題ないです。ご検討ください。 > > ・再現SQL > CREATE TABLE Tags ( > name VARCHAR(64) PRIMARY KEY > ) DEFAULT CHARSET=utf8 > COLLATE=utf8_bin > COMMENT='default_tokenizer "TokenDelimit"'; > > CREATE TABLE Bugs ( > id INT UNSIGNED PRIMARY KEY, > tags VARCHAR(40) COMMENT 'type "Tags", flags "COLUMN_VECTOR"', > FULLTEXT INDEX bugs_tags_index (tags) COMMENT 'table "Tags"' > ) DEFAULT CHARSET=utf8; > > INSERT INTO Bugs (id, tags) VALUES (1, "Linux MySQL"); > INSERT INTO Bugs (id, tags) VALUES (2, "MySQL groonga"); > INSERT INTO Bugs (id, tags) VALUES (3, "mroonga"); > > mysql> SELECT * FROM Tags; > +---------+ > | name | > +---------+ > | Linux | > | MySQL | > | groonga | > | mroonga | > +---------+ > 4 rows in set (0.00 sec) > > > mysql> SELECT name FROM Tags ORDER BY LENGTH(name) ASC; > +------+ > | name | > +------+ > | | > | | > | | > | | > +------+ > 4 rows in set (0.00 sec) > > 以上、よろしくお願いします。 > >