sql语句查询字母字段时不区分大小写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql语句查询字母字段时不区分大小写相关的知识,希望对你有一定的参考价值。

我sql创建表时表字段设置了区分大小写,那我要用sql语句查询它的时候我要查询的字段不区分大小写所有都查出来,sql语句要怎么写》?select * from gzjdczb_db_links where upper(username) like '%g%' upper 没有用 还是只能查小写的。还有别的方法吗?

select * from gzjdczb_db_links where username like binary '%g%' or username like binary '%G%';

upper()应该是把username转化为大写的吧,lower()才是转化为小写

追问

晕,不能有 or 我是从前台获取的 小写 g 这是不固定的, 我要查询是不区分大小写
select * from gzjdczb_db_links where username like '%??%'

追答

select * from gzjdczb_db_links where UPPER(username)like UPPER('%g%' );
这样可以么?

参考技术A 第一种方法
like '%g%' 改成 like ‘%'||upper(条件)||‘%’
第二种方法
like UPPER('%g%' );
不过第二种方法 不好写 因为你的 g 可能是条件 不是固定的参数
参考技术B SQL对大小写不敏感啊大哥!追问

但是select * from gzjdczb_db_links where upper(username) like '%g%'我这样查询就只能查小写的啊,我要它大小写都能查出来。

追答

已有回答了

参考技术C where username like '%g%' or  username like '%G%'

参考技术D where lower(username) like '%g%'

sql server数据库表中各字段名需要大写吗

SQLSERVER默认不区分表名、字段名和值的大小写的
==================================
关于SQLSERVER要设置区分大小写
下面语句是设置SQL Server数据库是否区分大小写:(表名和数据库字段名)
--修改数据库不区分大小写
alter database 数据库名称 COLLATE Chinese_PRC_CI_AS
如:alter database zjk_cx COLLATE Chinese_PRC_CI_AS
--修改数据库区分大小写
alter database 数据库名称 COLLATE Chinese_PRC_CS_AS
如:alter database zjk_cx COLLATE Chinese_PRC_CS_AS
下面是数据库各行记录内容是否区分大小写:(一般在查询时的where条件中使用)
--不区分大小写
alter database 数据库名称 alter column 字段名称 字段类型 COLLATE Chinese_PRC_CI_AS
如:alter database zjk_cx alter column DBConn varchar(500) COLLATE Chinese_PRC_CI_AS
--区分大小写
alter database 数据库名称 alter column 字段名称 字段类型 COLLATE Chinese_PRC_CS_AS
如:alter database zjk_cx alter column DBConn varchar(500) COLLATE Chinese_PRC_CS_AS
参考技术A 一般来说是大写 而且还是表明的首字母.. 例如 一个表 Student 里面的 SID SName SAge SSex SGrade 等。。。 不过无所谓了

以上是关于sql语句查询字母字段时不区分大小写的主要内容,如果未能解决你的问题,请参考以下文章

如何在SQL中实现区分大小写的查询

oracle 模糊查询 模糊大小写

请问SQL数据库设计时字段名头一个字母是大写还是小写?

Oracle查询语句区分大小写吗?

mysql 字段值不区分大小写

Oracle查询语句区分大小写吗?