このTagsの登録数:1件 表示 : 1 - 1 / 1
データベースの中にパターンマッチ用の文字列を入れておいて、任意の文字列がそのパターンにマッチするかどうかを調べることは可能だろうか。うまい検索語が思い浮かばず、そういうことが記されたwebサイトを見つけることができなかったけれど、実際に試してみた。式の左辺と右辺を入れ替えるという単純な方法だ。
まずはMySQLで試す。以下のようなTABLEを作る。
CREATE TABLE `test` (`name` varchar(32)) TYPE=MyISAM; INSERT INTO `test` (`name`) VALUES ('%demo%'),('^a'),('abc|cde'),('____');
そしてクエリを投げてみる。
SQL文: SELECT * FROM `test` WHERE 'search_demo_string' LIKE `name`; 結果: %demo%SQL文: SELECT * FROM `test` WHERE '1234' LIKE `name`;結果: ____ SQL文: SELECT * FROM `test` WHERE 'abc' REGEXP `name`;結果: ^a, abc|cde
SQL文: SELECT * FROM `test` WHERE '1234' LIKE `name`;結果: ____
SQL文: SELECT * FROM `test` WHERE 'abc' REGEXP `name`;結果: ^a, abc|cde
と、どれも期待通りの結果が返ってきた。
次は(本命の)Core Data。
[obj setValue:@"http://www.apple.com/.*" forKey:@"name"];
とか作って
[NSPredicate predicateWithFormat:@"'http://www.apple.com/itunes/' matches name"];
などとしてNSPredicateを作り、fetchしてみるとちゃんと結果が返ってきた!
詳細検索
データベースの中にパターンマッチ用の文字列を入れておいて、任意の文字列がそのパターンにマッチするかどうかを調べることは可能だろうか。うまい検索語が思い浮かばず、そういうことが記されたwebサイトを見つけることができなかったけれど、実際に試してみた。式の左辺と右辺を入れ替えるという単純な方法だ。
まずはMySQLで試す。以下のようなTABLEを作る。
CREATE TABLE `test` (`name` varchar(32)) TYPE=MyISAM; INSERT INTO `test` (`name`) VALUES ('%demo%'),('^a'),('abc|cde'),('____');そしてクエリを投げてみる。
と、どれも期待通りの結果が返ってきた。
次は(本命の)Core Data。
とか作って
などとしてNSPredicateを作り、fetchしてみるとちゃんと結果が返ってきた!