2013-08-17 37 views
0

嗨即時通過ID,搜索詞和最暢銷的過濾搜索一個想法混合搜索結果(用於jQuery自動完成)。我有「產品」表,該表具有以下colums:「ID,姓名,......,賣」給我的SQL用於混合searchword和f.e.的SQL查詢最暢銷

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 ??? 

在此查詢是「出售(出售項)」不包括在內。我正在尋找方式將其結合到我的查詢中。 我需要這個順序

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" 

回答

0

你可以做這樣的事情

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演示