如何在sql查询中忽略大小写

Posted

技术标签:

【中文标题】如何在sql查询中忽略大小写【英文标题】:how to ignore case on sql query 【发布时间】:2021-07-23 23:53:26 【问题描述】:

我有这个 sql 查询:

var userLogin = "select * from login where USERNAME = ?";

问题是,有些用户名是testDummy123@gmail.com,但用户可能输入为testdummy123@gmail.com,所以我只想忽略一般的大写或小写,并执行一个查询,无论大写还是小写案子,还是找找吧。

这怎么可能?

【问题讨论】:

【参考方案1】:

一种方法是:

where lower(username) = lower(?)

但是,您最好为此使用不区分大小写的排序规则。这将使代码更容易使用索引。或者,确保username 存储为小写,以便您可以使用:

where username = lower(?)

这也是索引兼容的。

【讨论】:

【参考方案2】:

您可以在用户名的相等检查的两边小写:

var userLogin = "SELECT * FROM login WHERE LOWER(USERNAME) = ?";

? 占位符,您将绑定用户名变量的小写版本:

var username = "testDummy123@gmail.com";
username = username.toLowerCase();  // bind this variable to ?

【讨论】:

以上是关于如何在sql查询中忽略大小写的主要内容,如果未能解决你的问题,请参考以下文章

pgsql (PostgresSQL) 查询的时候忽略大小写

SQL-搜索字符串时忽略大小写

在oracle中怎样进行忽略大小写的查询

sql怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)

Hibernate Hql 怎么在模糊查询字母时忽略大小写?

Firestore 数据库查询,忽略大小写(不区分大小写)和 like 子句。 [复制]