如何在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怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)