相关行mysql查询

时间:2011-02-28 22:57:00

标签: php mysql regex

我需要从与刚刚添加的新行相关的表中选择5行。

当用户发布新广告时,我会在广告网站上工作,我希望链接与此广告相关的5个广告。

标准是搜索存储在数据库中的其他广告的标题中的单词列表(从刚刚添加的新广告的标题中提取)。

这是一种在MySQL中使用正则表达式来验证单个广告标题中的多个要求的方法。

有人可以帮助我构建MySQL查询以获得此结果

例如:

新广告的标题:“销售新的Android智能手机” 提取世界:“android”和“智能手机”

一些广告:

1 - “搜索再见新智能手机”

2 - “销售Android产品”

3 - “新智能手机”

4 - “畅销车”

6 - “,nwx wxclkn wxc”

查询应该返回1,2,3广告的ID。

2 个答案:

答案 0 :(得分:2)

最简单的方法是将标记与每个广告相关联,这样您就可以通过标记本身关联广告。你不能仅仅依赖于标题,例如“卖手机”会与你的例子有关,即使它没有任何共同词。

然后,您将检索与广告相关联的代码,并查找具有相同代码的其他广告,并按匹配代码的数量对结果进行排序。

答案 1 :(得分:0)

感谢您的回答

我找到了一个解决方案来做到这一点,而不是在广告中添加标签,我只需从新添加的添加中提取所需的单词,然后创建像

这样的mysql正则表达式

提取词:“android”“智能手机”

SQL:

SELECT * FROM ad_table WHERE title REGEXP '[[:<:]]android[[:>:]]|[[:<:]]smartphone[[:>:]]'