SQL等于类错误

SQL等于类错误,sql,Sql,我有一个由头文件组成的数据库。例如:,等。当我的查询是: select * from hf_list where hf = '<iostream>' 它返回一个空集,而 select * from hf_list where hf like '%<iostream>%'" 获取正确的结果,即使该项没有除“”以外的任何其他字符。 为什么会发生这种情况?如果您说的是“%”,那么您基本上是在说“给我下面的所有代码” ;with sam as ( select ' <

我有一个由头文件组成的数据库。例如:,等。当我的查询是:

select * from hf_list where hf = '<iostream>'
它返回一个空集,而

select * from hf_list where hf like '%<iostream>%'"
获取正确的结果,即使该项没有除“”以外的任何其他字符。
为什么会发生这种情况?

如果您说的是“%”,那么您基本上是在说“给我下面的所有代码”

;with sam as (

select ' <iostream> ' as col1
union 
select 'sam' as col1
)

select * from sam where col1 like '%<iostream>%'

如果要检查是否有空白数据,请从hf_列表中选择*,其中rtrimltrimhf='iostream'

这不清楚。%是一个通配符,因此将返回您案例中的所有行。字符串的前面或结尾是否有空格?@OldProgrammer它将返回包含@P_G的所有行,我认为没有。我尝试了使用空格的查询。不工作请为您的DBMS Postgres、Oracle添加标签,…从hf_列表中选择*,其中trimhf=这是我输入的内容,结果集为空您修改了问题,无论如何,如果您添加wild charector,它将提取包含该数据的所有结果,即如果数据是sam和sama,并且您搜索%M%,则它将输出两个结果,但如果您使用“M”搜索,它将不会返回记录。我知道,但我的数据是,不多不少。但是,使用equals运算符搜索结果集仍然是空的。请尝试length并查看它是否有空格,您是否可以在此处打印一条结果记录,以便我们都可以看到该记录,以及它是mysql、oracle还是sql server