python - mysql 查询过滤器 LIKE 无法正常工作
问题描述
我有一列campaign_name
,用户可能会键入并查找增加敏感字符串关键字。例如,他们输入了"adopt a patient"
. 但在我的桌子里面campaign_name
:我有"adopt-a-patient"
+----------------
|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-patient"
,结果将按预期返回。
任何帮助将非常感激。无论如何,我正在django
应用程序上实现它。我只是在里面调试它HeidiSQL
。
解决方案
也许用替换空格'%'
会做你想要的:
where campaign_name like concat('%', replace('ADOPT A PATIENT', ' ', '%'), '%')
注意:这允许任何长度的字符串。如果您只想允许一个字符,请'_'
改用:
where campaign_name like concat('%', replace('ADOPT A PATIENT', ' ', '_'), '%')
推荐阅读
- assembly - 对访问字符串中的字符的反汇编中的取消引用操作感到困惑
- javascript - 声明 Cheerio 变量的问题
- java - Eclipse 中的 JavaFX 和 luaj - java.lang.module.InvalidModuleDescriptorException: luajc.class found in top level directory
- python - 查找每行是否存在重复值
- apache-spark - 在 spark 中 spark.executor.pyspark.memory 配置选项的含义是什么?
- javascript - 如何提高for循环的速度
- c# - 如何访问用户 Onedrive 帐户中的文件?
- c - (C) 我是否正确地将枚举类型转换为字符串?
- python - 如何在 Pandas-Python 中过滤生日列表
- javascript - Vuetify 选项卡不能与 masonry.js 一起使用,有什么修复吗?