首页 > 解决方案 > 如何从 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'

标签: mysql

解决方案


您处理此问题的典型方法是将两个比较都小写,例如

SELECT id FROM table WHERE name = LOWER('100 ABC');

然而,更好的方法是只在表中存储小写字母,然后只从应用程序层传入小写数据。为此,您可以考虑在 MySQL 中使用小写排序规则,但您也可以从应用程序中强制执行此操作。


推荐阅读