我有一张表有以下记录的客户:
CustomerID CustomerName Country
1 Alfr_eds Germany
2 Ana Mexico
3 Antonio Mexico
我需要在客户名称中选择包含_
的记录,以便可以使用哪些查询。
我尝试了以下查询:
SELECT * FROM Customers where CustomerName LIKE '%_%';
但它会返回所有数据。
答案 0 :(得分:3)
To"禁用"作为通配符的下划线,你需要逃避它:
SELECT *
FROM Customers
where CustomerName LIKE '%\_%' escape '\';
子句escape '\'
告诉数据库,\
之后的任何字符都不应被视为通配符。你可以使用你喜欢的任何角色,例如<{1}}也可以正常工作
#
答案 1 :(得分:0)
对于SQL Server,您可以使用[ ]
作为通配符,查看LIKE (Transact-SQL)
文档。
所以你可以这样写:
select * from customers where customerName like '%[_]%'
您的查询使用_
通配符,因此它基本上会检查customerName
是否包含任何单个字符。