我在数据库中有Person表。其中包含firstname
,lastname
,age
,country
。
person1:John,Tom,29,italy
我想按国家/地区搜索最后一个字母%y
,但因为国家/地区字段定义为15个字符,因此该字段的其余部分为空格。是这样的:italy----------
其中-
表示空格。
所以它永远不会发现意大利,因为该领域以白色空间结束。
怎么能修好?在运行Like
运算符之前删除空格!
答案 0 :(得分:0)
快速解决方案是使用RTRIM(Country)
更好的解决方案是更新此列:
UPDATE YourTable
SET Country = RTRIM(LTRIM(Country))
并删除添加或更新新国家/地区的代码中的额外空格。
答案 1 :(得分:0)
您似乎将国家/地区存储为char()
字段而非varchar()
字段。我建议将定义更改为varchar(255)
或类似的内容 - 对于国名,15个字符似乎太短。
如果你不能这样做,你也可以这样做:
where country like replace(cast(country as varchar(255)), ' ', '') like '%y'
还有其他方法可以表达这一点,但这应该适用于大多数数据库(您没有提到您正在使用的特定引擎)。
答案 2 :(得分:0)