大文字と小文字を区別しない検索で問題に直面しています。私は次の環境を使用しています:-
Database: MySQL
Collation/Character Encoding: utf8bin
Framework: Django-Tastypie
この照合/文字エンコーディングは、大文字と小文字を区別しない検索をサポートしていません。だから私が書くなら
SELECT .... WHERE company_name LIKE '%StackOverflow%';
その後、「STACKOVERFLOW」またはその他の組み合わせの出力は得られません。
Django-Tastypie フィルタリングを使用する場合:-
company_name__icontains = 'StackOverflow'
また、内部で同じ SQL クエリを起動するため、正しい答えが得られません。
単純な MySQL クエリを使用する場合は、次を使用できます。
SELECT .... WHERE UPPER(company_name) like upper('%StackOverflow%');
しかし、Django-Tastypie で上記のソリューションのフィルターを作成することはできません。
正規表現を使用して問題を解決する別の方法を見つけました:-
company_name__iregex = '(S|s)(T|t)(A|a)(C|c)(K|k)(O|o)(V|v)(E|e)(R|r)(F|f)(L|l)(O|o)(W|w)'
ただし、非常に遅い方法です。
Tastypieで大文字と小文字を区別しない検索用のフィルターを構築できるように、誰かが解決策を提供できますか。
ありがとう