gpt4 book ai didi

mysql - django-tastypie-mysql 中面临区分大小写搜索的问题

转载 作者:行者123 更新时间:2023-11-29 13:33:02 24 4
gpt4 key购买 nike

我在不区分大小写的搜索中遇到问题。我正在使用以下环境:-

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 中构建一个过滤器以进行不区分大小写的搜索。

谢谢

最佳答案

我更改了数据库级别的字符编码。其支持不区分大小写的搜索。

我运行了以下命令:-

alter table {{table_name}} convert to character set utf8 collate utf8_general_ci;

关于mysql - django-tastypie-mysql 中面临区分大小写搜索的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152309/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com