Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sql server: need to escape [?

I need to escape [ in an sql query for SQL Server

select * from sometable where name like '[something]';

I actually am looking for a [ before something and I don't want it to act like a wildcard. I tried :

select * from sometable where name like ''[something]';

But get error message from this:

Msg 102, Level 15, State 1, Line 1 Incorrect syntax near 'something'. Msg 105, Level 15, State 1, Line 1 Unclosed quotation mark after the character string ';

like image 356
user840930 Avatar asked Jan 24 '12 09:01

user840930


2 Answers

Use:

select * from sometable where name like '[[]something[]]';

you may use as well:

select * from sometable where name like '\[something\]' escape '\';

Described in LIKE (Transact-SQL) on MSDN.

like image 184
Michał Powaga Avatar answered Oct 17 '22 14:10

Michał Powaga


Embed the [ in []

declare @T table
(
  name varchar(20)
)

insert into @T values
('abc'),
('[abc')

select *
from @T 
where name like '[[]a%'

Result:

name
--------------------
[abc

Have a look here at what you can do in the like expression. LIKE (Transact-SQL)

like image 36
Mikael Eriksson Avatar answered Oct 17 '22 13:10

Mikael Eriksson