我在表格中有两行,其中包含'名称'中的相同信息。 column(nvarchar(50),not null)。
SELECT * FROM TableName WHERE ColumnName = 'ColumnValue'
返回两个行
SELECT * FROM TableName WHERE ColumnName LIKE 'ColumnValue'
只返回一行行
是否有人知道可能导致此行为的原因是什么?
答案 0 :(得分:9)
这可能是由于尾随空格。执行=
操作会排除尾随空格,但LIKE
不会。
例如,这将返回一个匹配:
SELECT 'match' WHERE 'fred' = 'fred '
但是这不是:
SELECT 'match' WHERE 'fred' LIKE 'fred '
答案 1 :(得分:1)
我在使用
时总是使用%将您的喜欢声明更改为
SELECT * FROM TableName WHERE ColumnName LIKE '%ColumnValue%'
使用精确的列值总是更好,但有时你不记得确切的字符串太长了。