当有两行符合查询条件时,PostgreSQL查询仅返回一行

当有两行符合查询条件时,PostgreSQL查询仅返回一行,sql,postgresql,Sql,Postgresql,运行查询时: select * from table 我得到了300个结果。其中2个具有相同值的col_名称:10348-0。它是文本类型的 当我跑的时候 select * from table where col_name = '10348-0' 我希望返回两行return,因为有两行满足该条件 相反,我只得到一行,其中一行的ID比另一行少一行。即返回的行id:4556未返回的行id:4557。ID列的类型为串行整数 为什么在向查询中添加“Where”子句时只返回一行?可能名称中有隐藏字符

运行查询时:

select * from table
我得到了300个结果。其中2个具有相同值的col_名称:10348-0。它是文本类型的

当我跑的时候

select * from table where col_name = '10348-0'
我希望返回两行return,因为有两行满足该条件

相反,我只得到一行,其中一行的ID比另一行少一行。即返回的行id:4556未返回的行id:4557。ID列的类型为串行整数


为什么在向查询中添加“Where”子句时只返回一行?

可能名称中有隐藏字符或相似字符,所以看起来相同的不一定相同

最常见的问题是前导空格或尾随空格。我建议您尝试使用以下方法查找这些:

col_name like '%10348-0%'
另一个常见问题是em破折号与en破折号。您也可以尝试:

col_name like '10348_0'

\uuu
是一个类似于的通配符,只匹配一个字符。

可能名称中有隐藏字符或相似字符,因此看起来相同的字符不一定相同

最常见的问题是前导空格或尾随空格。我建议您尝试使用以下方法查找这些:

col_name like '%10348-0%'
另一个常见问题是em破折号与en破折号。您也可以尝试:

col_name like '10348_0'

\uuu
是类似于的通配符,可以精确匹配一个字符。

可能是一些空白。尝试一下
where trim(col_name)='10348-0'
就是这样做的!谢谢,可能有一些空白。尝试一下
where trim(col_name)='10348-0'
就是这样做的!感谢这一点以及修剪功能的工作。如果可以,我会接受这个答案。这和微调功能一样有效。我会在可能的时候接受这个答案。