[解決済み] Sqlite3の文字列比較で大文字・小文字を区別しない設定にするには?
2022-03-16 02:56:38
質問
sqlite3データベースから文字列照合でレコードを選択したいです。しかし、where節で'='を使用すると、sqlite3は大文字と小文字を区別することがわかりました。どなたか、大文字と小文字を区別しない文字列比較の方法を教えていただけませんか?
解決方法は?
を使用することができます。
COLLATE NOCASE
の中で
SELECT
のクエリを作成します。
SELECT * FROM ... WHERE name = 'someone' COLLATE NOCASE
さらに、SQLite では、テーブルを作成するときに、大文字小文字を区別しないカラムを指定することができます。
collate nocase
をカラムの定義に追加します (他のオプションは
binary
(デフォルト)と
rtrim
をご覧ください。
ここで
). を指定することができます。
collate nocase
を作成する際にも、同様にインデックスを作成します。 例えば
create table Test ( テキスト値 テキスト 照合順序 nocase ); insert into Test values ('A'); insert into Test values ('b')(テストの値に挿入する)。 insert into Test values ('C'); インデックス Test_Text_Value_Index を作成する。 をテストします(Text_Value collate nocase)。
を含む式
Test.Text_Value
は、大文字と小文字を区別しないようになりました。 例えば
sqlite> select Text_Value from Test where Text_Value = 'B'; テキスト値 ---------------- b sqlite> select Text_Value from Test order by Text_Value; テキスト値 ---------------- A b C sqlite> select Text_Value from Test order by Text_Value desc; テキスト値 ---------------- C b A
オプティマイザは、大文字小文字を区別しない検索やカラムのマッチングにインデックスを使用できる可能性もあります。 これを確認するには
explain
SQLコマンドなど。
sqlite> explain select Text_Value from Test where Text_Value = 'b'; アドラ オペコード p1 p2 p3 ---------------- -------------- ---------- ---------- --------------------------------- 0 ゴトー 0 16 1 整数 0 0 2 OpenRead 1 3 keyinfo(1,NOCASE) 3 SetNumColumns 1 2 4 String8 0 0 b 5 IsNull -1 14 6 MakeRecord 1 0 a 7 MemStore 0 0 8 MoveGe 1 14 9 MemLoad 0 0 10 IdxGE 1 14 +. 11 列 1 0 12 コールバック 1 0 13 ネクスト 1 9 14 クローズ 1 0 15 停止 0 0 16 トランザクション 0 17 ベリファイドクッキー 0 4 18 後藤 0 1 19 Noop 0 0
関連
-
SQLite3における日付と時刻の関数のまとめ
-
SQLiteデータベースの共通文とMACでのSQLite用可視化ツール「MeasSQLlite」の利用について
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Vimで大文字小文字を区別しない検索をする方法
-
[解決済み] AndroidでSQLiteを使用する際に、並行処理の問題を回避するにはどうすればよいですか?
-
[解決済み] 大文字と小文字を区別しない文字列比較を行うにはどうすればよいですか?
-
[解決済み] 大文字・小文字を区別せず含む
-
[解決済み】大文字・小文字を区別しない「Contains(string)
-
[解決済み】大文字・小文字を区別しない検索機能
-
[解決済み] 大文字・小文字を区別しないリスト検索
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン