在WHERE SQL中组合CONCAT和RTRIM

时间:2014-07-31 14:22:54

标签: mysql sql concat

我现在有点麻烦,不知道如何解决这个问题。

首先是一些背景信息:

我有一张包含71k记录的表格,列firstnamelastname。客户希望能够使用firstname和lastname进行搜索。

我使用了这个查询,它运行正常:

select * 
from `subscribers` 
where `subscribers`.`deleted_at` is null 
  and concat   (firstname," ",lastname) = 'firstname lastname'

除了以下问题:

某些记录的名字后面有一个尾随空格。这使得上述查询不起作用,除非我在firstname和lastname之间添加第二个空格。

我知道我必须在RTRIM上使用firstname,我尝试过,但似乎无效。

我做错了什么?我怎样才能解决这个问题? 我宁愿不编辑71k记录,因此他们的名字后面没有尾随空格......

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这应该有效(见SQL Fiddle demo):

select * from `subscribers` 
where `subscribers`.`deleted_at` is null 
  and concat (trim(firstname)," ",trim(lastname)) LIKE 'firstname lastname';