小编IMM*_*TAL的帖子

为什么在LIKE过滤器中使用Underscore字符会给我所有结果?

我用以下LIKE条件编写了以下SQL查询:

SELECT * FROM Manager
WHERE managerid LIKE '_%'
AND managername LIKE '%_%'
Run Code Online (Sandbox Code Playgroud)

LIKE我想要搜索任何下划线%_%,但我知道我的列的数据没有下划线字符.

  • 为什么查询会给我表中的所有记录?

样本数据:

create table Manager(
    id int
    ,managerid varchar(3)
    ,managername varchar(50)
    );

insert into Manager(id,managerid,managername)values(1,'A1','Mangesh');
insert into Manager(id,managerid,managername)values(2,'A2','Sagar');
insert into Manager(id,managerid,managername)values(3,'C3','Ahmad');
insert into Manager(id,managerid,managername)values(4,'A4','Mango');
insert into Manager(id,managerid,managername)values(5,'B5','Sandesh');
Run Code Online (Sandbox Code Playgroud)

Sql-Fiddle

sql sql-server

102
推荐指数
4
解决办法
15万
查看次数

DICOM 注释和覆盖之间的差异

DICOM 覆盖和 DICOM 注释之间有什么区别?

dicom

2
推荐指数
1
解决办法
4498
查看次数

像我在使用"?"时查询无效 字符

我的SQL查询是这样的

create table Manager(id int, managerid varchar(3) , managername varchar(50))

insert into Manager(id,managerid,managername)values(123,'A12','Mangesh')
insert into Manager(id,managerid,managername)values(54321,'A23','Sagar')
insert into Manager(id,managerid,managername)values(334,'C34','Ahmad')
insert into Manager(id,managerid,managername)values(456,'A45','Mango')
insert into Manager(id,managerid,managername)values(567,'B56','Sandesh')
Run Code Online (Sandbox Code Playgroud)

我喜欢的查询就是这个

select * from Manager where id LIKE '%4321%'
Run Code Online (Sandbox Code Playgroud)

这个查询给了我这个记录

id     managerid  managername 
54321  A23        Sagar
Run Code Online (Sandbox Code Playgroud)

但是当我尝试运行这种查询时,它并没有给我任何记录,即零记录计数,但实际上有一条记录查询是:

select * from Manager where id LIKE '%?4321%'
Run Code Online (Sandbox Code Playgroud)

这有什么问题?

sql小提琴sql查询

sql sql-server

2
推荐指数
1
解决办法
98
查看次数

标签 统计

sql ×2

sql-server ×2

dicom ×1