模糊日期匹配

时间:2018-02-22 06:46:50

标签: php mysql

我有一个客户端的mysql数据库,并抓取了一个网站,检索过去几年的所有评论。现在我正在尝试将这些评论与客户匹配,以便我可以通过电子邮件发送给他们。问题是评论网站允许他们输入他们想要的任何名称,所以在某些情况下我有完整的名字和最后的首字母,在某些情况下,我有第一个姓名和最后一个全名。它还给出了一个大概的发布时间,例如“1周前”,“6个月前”等,我们已经将其转换为大致日期。

现在我需要尝试将这些匹配到客户端。似乎最好的方法是对名称进行模糊搜索,然后一旦找到所有 <div class="row"> <div class="col-md-6"> Left column </div> <div class="col-md-6"> Middle Column </div> <div class="col-md-6"> Right Column </div> </div>我找到一个工作完成日期最接近评论发布的那个,自然会消除在工作之前发布的任何内容完成了。

我整理了一个小样本数据集,其中table1是客户端,table2是要匹配的评论: http://sqlfiddle.com/#!9/23928c/6/0

我最初想的是做一个date_diff,但后来我需要按最低的数字排序。在我自己解决这个问题之前,我想我会问他们是否有任何想要分享的技巧。

我正在使用PHP / Laravel来查询MySql

1 个答案:

答案 0 :(得分:0)

您可以将DATEDIFF用于绝对值:

ORDER BY ABS(DATEDIFF(`date`, $calculatedDate)) DESC

查找与您的估算密切相关的记录,正面或负面。