SELECT * FROM table WHERE product like '%abc%' OR product like '%cde%'
是否可以使用
显示所有产品both 'abc' and 'cde' first
然后带
的产品either 'abc' or 'cde'
答案 0 :(得分:2)
ORDER BY
一个case
表达式,如果abd和cde都返回1,否则为2.
SELECT *
FROM table
WHERE product like '%abc%' OR product like '%cde%'
ORDER BY case when product like '%abc%' AND product like '%cde%' then 1
else 2
end
答案 1 :(得分:0)
尝试在ORDER BY
子句中使用相关查询:
SELECT t.*
FROM table t
WHERE product like '%abc%' OR product like '%cde%'
ORDER BY (SELECT COUNT(DISTINCT product) FROM table s
WHERE t.<Relation> = s.<Relation>
AND s.product like '%abc%' OR s.product like '%cde%') DESC
将<Relation>
替换为表格键。
答案 2 :(得分:0)
对于精致的订购:
SELECT * FROM table
WHERE product like '%abc%' OR product like '%cde%'
ORDER BY
CASE
/* First show products with 'abc' AND 'cde'... */
WHEN product LIKE '%abc%' AND product LIKE '%cde%' THEN 1
/* ...2nd products with with 'abc' */
WHEN product LIKE '%abc%' THEN 2
/* ...and finally products with with 'cde' */
WHEN product LIKE '%cde%' THEN 3
ELSE 4 /* not actually necessary in this case */
END