查询区分大小写

大小写

在sql2000和7.0的查询语句中,区分大写的查询方法

--sql2000,就用下面的方法.
--就是在字段名后加 collate Chinese_PRC_CS_AS_WS

--区分大小写、全半角字符的方法

--测试数据
create table 表(fd varchar(10))
insert into 表
select aa='aa'
union all select 'Aa'
union all select 'AA'   --全角A
union all select 'A,A'  --全角A,半角,
union all select 'A,A' --全角A,全角,
go

--查询
--1.查大写字母
select * from 表
where fd collate Chinese_PRC_CS_AS_WS like '%A%' 
--就是在字段名后加 collate Chinese_PRC_CS_AS_WS

--2.查全角
select * from 表
where fd collate Chinese_PRC_CS_AS_WS like '%A%'

--3.查半角
select * from 表
where fd collate Chinese_PRC_CS_AS_WS like '%,%'
go

--删除测试数据
drop table 表

/*--测试结果

1.查询大写字母的结果
fd        
----------
Aa

2.查询全角字符的结果
fd        
----------
AA
A,A
A,A

3.查询半角字符的结果
fd        
----------
A,A

(所影响的行数为 1 行)
--*/

================================================================

--sql7.0,就用下面的方法.

--如果是全部比较
--下面是测试
select * from(
select fd='a'
union all select 'A'
) a
where cast(fd as varbinary(8000))=cast('A' as varbinary(8000))

/*--测试结果
fd  
----
A

(所影响的行数为 1 行)
--*/

--如果是部分匹配,就用charindex:

--下面是测试
select * from(
select fd='a'
union all select 'A'
union all select 'aAaa'
union all select 'aaaa'
union all select 'cccA'
) a
where charindex(cast('A' as varbinary(8000)),cast(fd as varbinary(8000)))>0

/*--测试结果
fd  
----
A
aAaa
cccA

(所影响的行数为 3 行)
--*/

 

 

时间: 2024-08-30 19:38:22

查询区分大小写的相关文章

mysql查询区分大小写高性能

 mysql查询默认是不区分大小写的 如: 1 2 3 4 5 6 7 <a href="/tags.php/select/" target="_blank">select</a>  * from  table_name where  a like  'a%'       select  * from  table_name where  a like  'A%'       select * from table_name where a 

MYSQL char字符型区分大小写,查询区分大小写

有时候字段需要查询且区分大小写,所以 方法一:查询是在字段前面加binary select * from session where binary session_id='abcACE' 方法二:修改字段 方式一 ALTER TABLE session MODIFY COLUMN `session_id` CHAR(32) BINARY CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'session_id,在没有用户登录的情况下'; 方

使MySQL查询区分大小写的实现方法_Mysql

1.一种方法是可以设置表或行的collation,使其为binary或case sensitive.在MySQL中,对于Column Collate其约定的命名方法如下: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: case sensitive collation,区分大小写 *_ci: case insensitive collation,不区分大小写 ########### # Start binary colla

mysql查询区分大小写

Mysql默认查询是不分大小写的,可以在SQL语句中加入binary来区分大小写. binary不是函数,是类型转换运算符,它用来强制它后面的字符串为一个二进制字符串,可以理解为在字符串比较的时候区分大小写. SELECT * FROM t_resource_info WHERE binary RESOURCE_FORMAT='SWF'  

mysql select查询区分大小写三种方法(1/3)

1.一种方法是可以设置表或行的collation,使其为binary或case sensitive.在mysql教程中,对于column collate其约定的命名方法如下: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的 *_cs: case sensitive collation,区分大小写 *_ci: case insensitive collation,不区分大小写   ########### # start binary c

脚本-oracle条件查询,才能查询时不区分大小写

问题描述 oracle条件查询,才能查询时不区分大小写 Oracle 默认是区分大小写.如果不要区分,就要额外的设置. 下面就是不区分的脚本设置: ALTER SESSION SET NLS_COMP=ANSI; ALTER SESSION SET NLS_SORT=binary_ci;不过这个是在当前会话上,也就是说在每次发起查询的时候都需要执行这个才能起作用的.那么在java中该怎么设置才能得到所需的结果 解决方案 oracle查询区分大小写查询区分大小写查询区分大小写 解决方案二: sql

MySql查询不区分大小写解决方案(两种)

当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感. 解决方案一: 于是怀疑Mysql的问题.做个实验:直接使用客户端用sql查询数据库. 发现的确是大小不敏感 . 通过查询资料发现需要设置collate(校对) . collate规则: *_bin: 表示的是binary case sensitive collation,也就是说是区分大小写的  *_cs: case sensitive collation,区分大小写  

mysql字符串区分大小写的问题

  一.1. CREATE TABLE NAME(name VARCHAR(10)); 对这个表,缺省情况下,下面两个查询的结果是一样的: SELECT * FROM TABLE NAME WHERE name='clip'; SELECT * FROM TABLE NAME WHERE name='Clip'; MySql默认查询是不区分大小写的,如果需要区分他,必须在建表的时候,Binary标示敏感的属性. CREATE TABLE NAME( name VARCHAR(10) BINARY

MySQL中查询的有关英文字母大小写问题的分析_Mysql

mysql数据库在做查询时候,有时候是英文字母大小写敏感的,有时候又不是的,主要是由mysql的字符校验规则的设置决定的,通常默认是不支持的大小写字母敏感的.  1. 什么是字符集和校验规则? 字符集是一套符号和编码.校对规则是在字符集内用于比较字符的一套规则.任何一个给定的字符集至少有一个校对规则,它可能有几个校对规则.要想列出一个字符集的校对规则,使用SHOW COLLATION语句. 校对规则一般有这些特征:     两个不同的字符集不能有相同的校对规则.     每个字符集有一个默认校对