duanruoyu6675 2013-07-14 00:35
浏览 81
已采纳

从3个可能的列中选择,按出现/相关性排序

I have a table that contains 3 text fields, and an ID one.

The table exists solely to get collection of ID's of posts based on relevance of a user search.

Problem is I lack the Einsteinian intellect necessary to warp the SQL continuum to get the desired results -

SELECT `id` FROM `wp_ss_images` WHERE `keywords` LIKE '%cute%' OR `title` LIKE '%cute%' OR `content` LIKE '%cute%'
  • Is this really enough to get a relevant-to-least-relevant list, or is there a better way?

Minding of course databases could be up to 20k rows, I want to keep it efficient.


Here is an update - I've gone the fulltext route -

EXAMPLE:

SELECT `id` FROM `wp_ss_images` WHERE MATCH (`keywords`,`title`,`content`) AGAINST ('+cute +dog' IN BOOLEAN MODE);

However it seems to be just grabbing all entries with any of the words. How can I refine this to show relevance by occurances?

  • 写回答

2条回答 默认 最新

  • duanjiong5023 2013-07-14 00:49
    关注

    To get a list of results based on the relevance of the number of occurrences of keywords in each field (meaning cute appears in all three fields first, then in 2 of the fields, etc.), you could do something like this:

    SELECT id
    FROM (
      SELECT id, 
        (keywords LIKE '%cute%') + (title LIKE '%cute%') + (content LIKE '%cute%') total 
      FROM wp_ss_images
      ) t
    WHERE total > 0
    ORDER BY total DESC
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?