我创建了一个表格如下: -
pytest
现在,我必须找到包含%的名称。
我应该CREATE TABLE Customer(CustomerID integer PRIMARY KEY, Name text);
/* Added few records in this table */
INSERT INTO Customer VALUES(1,'Tom');
INSERT INTO Customer VALUES(2,'Lucy');
INSERT INTO Customer VALUES(3,'Jenny%123');
我使用的查询是
'Jenny%123'
但是我得到了所有的行。我只想要包含%的名称。
答案 0 :(得分:6)
您可以使用CHARINDEX
:
select *
from Customer
where charindex ('%', Name) <> 0
以上是 non-sargable ,但更容易理解恕我直言。
答案 1 :(得分:2)
您可以使用escape
子句将中间%
视为文字:
SELECT * FROM Customer WHERE Name LIKE '%\%%' ESCAPE '\';
-- Use escape character -----------------^
-- Define escape character -------------------^
答案 2 :(得分:1)
SELECT * FROM Customer where Name LIKE '%[%]%'
这将起作用
为什么首先存储%?