我有一個表的客戶提供以下記錄在該領域有「_」:如何選擇記錄使用SQL
CustomerID CustomerName Country
1 Alfr_eds Germany
2 Ana Mexico
3 Antonio Mexico
,我需要選擇在客戶名稱含_
記錄,所以什麼都可以查詢用過的。
我想下面的查詢:
SELECT * FROM Customers where CustomerName LIKE '%_%';
但它返回的所有數據。
我有一個表的客戶提供以下記錄在該領域有「_」:如何選擇記錄使用SQL
CustomerID CustomerName Country
1 Alfr_eds Germany
2 Ana Mexico
3 Antonio Mexico
,我需要選擇在客戶名稱含_
記錄,所以什麼都可以查詢用過的。
我想下面的查詢:
SELECT * FROM Customers where CustomerName LIKE '%_%';
但它返回的所有數據。
對於SQL Server,您可以使用[ ]
作爲wildacard字符,請檢查LIKE (Transact-SQL)
文檔。
所以,你可以寫這樣的:
select * from customers where customerName like '%[_]%'
您的查詢使用_
通配符,因此,它基本上會檢查是否customerName
中有任何單個字符。
爲「Disable」下劃線作爲通配符,你需要逃避它:
SELECT *
FROM Customers
where CustomerName LIKE '%\_%' escape '\';
該條款escape '\'
告訴一個\
之後的任何字符不應該被視爲一個通配符數據庫。你可以使用任何你喜歡的角色,例如#
也能正常工作
SELECT *
FROM Customers
where CustomerName LIKE '%#_%' escape '#';
非常感謝你! – Guri
好嗎?你有什麼問題? –
請參閱http://stackoverflow.com/questions/19588455/use-underscore-character-in-wild-card-charecter-of-like-query-gives-me-all-table –
下劃線是「 LIKE'查詢一個任意字符。 因此LIKE'%_%'的意思是「給我所有記錄至少有一個任意字符在這一列」。 – Marshal