偏ったものしか使わないので、これを機に比較演算子についてまとめてみました!
いろいろあって、変なテンションで記事を書いてます (∩^o^)⊃━☆゜.*
前提条件
本を管理するためのデータベースに、以下のデータが登録されてるとします。
| 
					 1 2 3 4 5 6 7 8  | 
						let realm = try! Realm() try! realm.write {     realm.add([Book(value: ["name": "絶対に挫折しないiPhoneアプリ開発「超」入門", "price": 3000]),                Book(value: ["name": "Swift実践入門", "price": 3500]),                Book(value: ["name": "ゼロから始める超入門 はじめてのプログラミング", "price": 1700]),                Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500]),                Book(value: ["name": "たった2日でマスターするiPhoneアプリ開発集中講座", "price": 2700])]) }  | 
					
このデータベースを使って演算子の使い方をまとめますぅ
演算子まとめ
比較演算子
| 演算子 | 意味 | 
| ==(=) | 左辺値と右辺値は等しい | 
| !=(<>) | 左辺値と右辺値は等しくない | 
| > | 左辺値は右辺値を超過 | 
| >=(=>) | 左辺値は右辺値以上 | 
| < | 左辺値は右辺値未満 | 
| <=(=<) | 左辺値は右辺値以下 | 
| BETWEEN | 左辺値は右辺値の範囲内 | 
こんなもんですかね。
個人的にいつも != を使っていて、<> は知りませんでした…w
次に Realm 上での使い方を順番に記載します!
コメントはフィルター結果を記載してますぅ
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33  | 
						let realm = try! Realm() let results = realm.objects(Book.self) results.filter("price == 3000") // Book(value: ["name": "絶対に挫折しないiPhoneアプリ開発「超」入門", "price": 3000]) results.filter("price != 3000") // Book(value: ["name": "Swift実践入門", "price": 3500]) // Book(value: ["name": "ゼロから始める超入門 はじめてのプログラミング", "price": 1700]) // Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500]) // Book(value: ["name": "たった2日でマスターするiPhoneアプリ開発集中講座", "price": 2700]) results.filter("price > 3000") // Book(value: ["name": "Swift実践入門", "price": 3500]) // Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500]) results.filter("price >= 3000") // Book(value: ["name": "絶対に挫折しないiPhoneアプリ開発「超」入門", "price": 3000]) // Book(value: ["name": "Swift実践入門", "price": 3500]), // Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500]) results.filter("price < 3000") // Book(value: ["name": "ゼロから始める超入門 はじめてのプログラミング", "price": 1700]) // Book(value: ["name": "たった2日でマスターするiPhoneアプリ開発集中講座", "price": 2700]) results.filter("price <= 3000") // Book(value: ["name": "絶対に挫折しないiPhoneアプリ開発「超」入門", "price": 3000]) // Book(value: ["name": "ゼロから始める超入門 はじめてのプログラミング", "price": 1700]) // Book(value: ["name": "たった2日でマスターするiPhoneアプリ開発集中講座", "price": 2700]) results.filter("price BETWEEN {3000, 4000}") // Book(value: ["name": "絶対に挫折しないiPhoneアプリ開発「超」入門", "price": 3000]) // Book(value: ["name": "Swift実践入門", "price": 3500]) // Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500])  | 
					
論理演算子
| 演算子 | 意味 | 
| AND(&&) | 論理積 | 
| OR(||) | 論理和 | 
| NOT(!) | 否定 | 
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13  | 
						let realm = try! Realm() let results = realm.objects(Book.self) results.filter("price == 3500 AND name == 'Swift実践入門'") // Book(value: ["name": "Swift実践入門", "price": 3500]) results.filter("price == 3500 OR name == 'Swift実践入門'") // Book(value: ["name": "Swift実践入門", "price": 3500]) // Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500]) results.filter("!(price == 3500)") // Book(value: ["name": "絶対に挫折しないiPhoneアプリ開発「超」入門", "price": 3000]) // Book(value: ["name": "ゼロから始める超入門 はじめてのプログラミング", "price": 1700]) // Book(value: ["name": "たった2日でマスターするiPhoneアプリ開発集中講座", "price": 2700])  | 
					
文字列の比較演算子
| 演算子 | 意味 | 
| BEGINSWITH | 前方一致 | 
| ENDSWITH | 後方一致 | 
| CONTAINS | 部分一致 | 
| LIKE | パターンマッチング | 
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16  | 
						let realm = try! Realm() let results = realm.objects(Book.self) results.filter("name BEGINSWITH 'Swi'") // Book(value: ["name": "Swift実践入門", "price": 3500]) results.filter("name ENDSWITH 'ミング'") // Book(value: ["name": "ゼロから始める超入門 はじめてのプログラミング", "price": 1700]), results.filter("name CONTAINS 'Swi'") // Book(value: ["name": "Swift実践入門", "price": 3500]) // Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500]) results.filter("name LIKE '?発'")    // ?は任意1文字 // Book(value: ["name": "絶対に挫折しないiPhoneアプリ開発「超」入門", "price": 3000]) // Book(value: ["name": "詳細! Swift iPhoneアプリ開発入門ノート", "price": 3500]) // Book(value: ["name": "たった2日でマスターするiPhoneアプリ開発集中講座", "price": 2700])  | 
					
さいごに
まぁ特に目新しいことも少なくって感じですけども!
初心者向けですね ε=(。ノ・ω・)ノ
違うよ!とかこういう方法あるよ!ってのがあれば教えてください。
では( ¯·ω·¯ )

  
  
  
  

コメント