python - mysql 查询过滤器 LIKE 无法正常工作

标签 python mysql sql django

我有一列campaign_name,用户可能会键入并查找增加敏感字符串关键字。例如,他们输入了“收养一名患者”。但在我的表格中,campaign_name:我有“收养病人”

+----------------
|campaign_name  |
+----------------
|adopt-a-patient|
-----------------
select * from campaign where campaign_name LIKE '%adopt a patient%';
return ZERO result

我的 campaign_name 排序规则已设置为 utf8_general_ci。但是,如果用户准确输入单词“adopt-a-patent”,则会按预期返回结果。

任何帮助将不胜感激。无论如何,我正在 django 应用程序上实现它。我只是在 HeidiSQL 中调试它。

最佳答案

也许用 '%' 替换空格可以达到您想要的效果:

where campaign_name like concat('%', replace('ADOPT A PATIENT', ' ', '%'), '%')

注意:这允许任何长度的字符串。如果您只想允许一个字符,请使用 '_' 代替:

where campaign_name like concat('%', replace('ADOPT A PATIENT', ' ', '_'), '%')

关于python - mysql 查询过滤器 LIKE 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58217752/

相关文章:

sql - BigQuery - 对结构数组求和

php - 在 SQL 中组合条件

mysql - 使用默认日期格式创建表?

python - 如何使用 Django/Python 从 RESTful Web 服务中使用 XML?

python gspread oauth2client.client.HttpAccessTokenRefreshError : invalid_grant 错误

mysql - 创建 Spark Streaming 上下文后在 Spark 中缓存 RDS 数据

mysql - 复制到自动增量更改表的 tmp 表

python - 从数据集计算 kw/h 的最佳 python 方法

python - 在Python中查找特定的字符串部分

mysql - 如何替换特定表中特定字段中的所有 NULL 值?