Question: I want to delete a record which contains `%` sign, for example:

> 
> white%House, Den%mark, bengali%20Tiger, White%202. 
> 
> 
> 

I have this query but it doesn't work for me.

```
delete from nail where name like '%[%]%'

```

I am using C# and Access.

Answer: 
You can use `InStr()` to find if the name contains %

```
where InStr(name, '%') > 0

```
For completeness sake:

Within MS Access running in its default SQL mode (ANSI 89), you would use:

```
  Like "*%*"

```

Likewise, if you're using DAO to execute the SQL, you'd use that.

You only run into problems here when running in ANSI 92 mode, which is available within Access only if you have ANSI 92 turned on, or if you're using ADO, or if you use `ALIKE` instead of `LIKE`. In that case, you have to use the more standard `%` wildcard. If you're running within Access or using DAO, you can use `ALIKE` to allow you to use the `%` wildcard:

ALike "%[%]%"

But if you're running Access in SQL 92 mode, you don't need `ALIKE` at all, you can just use `LIKE` (but I would never recommend running Access in SQL 92 mode, as it breaks a number of things within Access).

If you're using ADO/OLEDB to execute the SQL, your only option is SQL 92 mode, and you should be able to use either `ALike "%[%]%"` or Like `"%[%]%"`. I don't know whether the double quotes make a difference or not, though. In my tests using ADO within Access, it didn't make any difference.