在WHERE SQL中组合CONCAT和RTRIM



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

先介绍一些背景信息:

我有一个表有71k条记录,列firstnamelastname。客户端希望能够结合姓氏和名字进行搜索。

我使用了这个查询,它工作得很好:

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

除了以下问题:

一些记录的名字后面有一个尾随空格。这使得上面的查询不能工作,除非我在名字和姓氏之间添加第二个空格。

我知道我必须在我的firstname上使用RTRIM,我试过了,但似乎不起作用。

我做错了什么?我该如何解决这个问题?我宁愿不编辑71k的记录,这样他们的名字后面就不会有尾随空格了…

谢谢你的帮助!

这应该可以工作(参见SQL Fiddle演示):

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

最新更新