mysql - 如何从 varchar 列 mysql 中过滤数据
问题描述
我们的数据库中有数据
id: 1 name: 100 abc
id: 2 name: 200 xyz
id: 3 name: 1000 kku
id: 4 name: 12 yog
id: 5 name: 1 ton
SELECT id from table where name = '${result['name']}'
如果有人输入结果 100 ABc 它将不匹配,因为我们的数据库有 100 abc,那么我们该如何解决它,请指导
我的意思是它应该返回我 id : 1 如果有人放
SELECT id from table where name = '100 ABC' or SELECT id from table where name = '100abc'
解决方案
您处理此问题的典型方法是将两个比较都小写,例如
SELECT id FROM table WHERE name = LOWER('100 ABC');
然而,更好的方法是只在表中存储小写字母,然后只从应用程序层传入小写数据。为此,您可以考虑在 MySQL 中使用小写排序规则,但您也可以从应用程序中强制执行此操作。
推荐阅读
- azure - MS 图形日历 API | 订阅用户日历 | 并行创建 100 个或更多会议时缺少 50% 的会议通知
- c# - 在插入数据库之前转换编码
- ios - 自动使用 TouchID 进行身份验证,不显示任何提示
- python - 在 Python 中使用正交多项式平滑大型噪声数据集
- c# - Azure 存储“租约” - 正确的异常方法
- java - java.lang.UnsatisfiedLinkError:java.library.path 中没有 netty-transport-native-epoll
- javascript - Fullcalendar Unknown option 'header' 版本 5.5.1
- python - matplotlib.pyplot 中的 HSV 颜色图
- c++ - 某些程序的 CreateProcessA 失败
- c# - GraphQL nuGet v4 DateTimeGraphType