首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于混合搜索词和f.e的SQL查询。卖得最多

用于混合搜索词和f.e的SQL查询。卖得最多
EN

Stack Overflow用户
提问于 2013-08-17 02:14:16
回答 1查看 48关注 0票数 0

嗨,我在寻找一个想法来混合搜索结果(对于jQuery自动完成),过滤由id,搜索-word和大多数销售。我有一个"products“表,其中有以下列:"id,name,.,sql”,这里是我的sql

代码语言:javascript
复制
    SELECT * FROM products
    WHERE 
        state=1 
        AND ( 
            id='$search' OR id LIKE '$search%' OR  id LIKE '%$search%' OR 
            name='$search' OR name LIKE '$search%' OR name LIKE '%$search%' 
            ) 
        ORDER BY ???

在这个查询中是“出售(出售-项目)”不包括在内。我也在寻找将它合并到我的查询中的方法。我需要这份订单

代码语言:javascript
复制
1. full id (e.g. sombody types 312 than the first row must be id=312)
2. full name (...)
3. otherwise search-pattern combined with "sold"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-17 07:27:58

你可以做这样的事

代码语言:javascript
复制
SELECT p.*, 
       MAX(3 * (id = '$search' OR id LIKE '%$search%'),
           2 * (name LIKE '%312%'),
           1 * (sold LIKE '%312%')) rank 
  FROM products p
 WHERE state = 1 
   AND (id = '$search' OR id LIKE '%$search%'
    OR name LIKE '%$search%'
    OR sold LIKE '%$search%')
 ORDER BY rank DESC

这是SQLFiddle演示

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18284451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档