2014-09-24 27 views

回答

0

你可以做几件事。首先,确保你的命名一致。我注意到你的一些名字是Orcs Must Die! 2,有些是Orcs Must Die 2而没有!Orcs Must Die!Orcs Must Die也是如此。

接下来,添加另一个名为product_category的列,并使用它对您的结果进行排序。如果您的产品是从Orcs Must Die!转让product_categoryorcs_must_die。如果它属于Orcs Must Die! 2,则将其赋值为orcs_must_die_2

最后,在你的选择,简化事情:

/*Change ASC -> DESC depending on the order you want.*/ 
SELECT name FROM products ORDER BY product_category ASC; 

希望帮助。我想你可能刚刚结束了你选择的复杂事情。


编辑:既然你不访问数据库中的数据(我认为可能是一个问题),这可能是难以实现的,由于数据的不一致和不可靠的列进行排序数据通过。

这个查询:(即OCD1前OCD2)

SELECT id, name, s_name FROM products WHERE s_name LIKE '%orcs must die%' UNION SELECT id, name, s_name FROM products WHERE s_name LIKE "%orcs must die 2%" ORDER BY id DESC; 

作品,但没有ORDER BY id DESC;它打印出来以错误的顺序坚持工作,看看是否有一种方法,以更好地优化数据并从那里出发。

+0

对于命名部分,我从外部网站获取这些名称,所以我不能在我的代码中编辑它们,我正在用's_name'进行搜索,这对每个产品都是一样的('兽人必须死亡......和'兽人必须死亡2 ...')。对于分拣部分,这两个产品就是例子,我的桌子上可以有其他产品。我需要得到的是:这两个'兽人必须死亡......'和兽人必须死亡2 ...'产品,但通过搜索查询排序(我输入'兽人必须死亡'我希望所有'兽人必须死... '产品首先,与另一个相同)。这需要适用于每个产品可能有以前或以后的版本。 – 2014-09-25 11:05:26

+0

我有权访问数据库,但无法通过代码编辑数据,因此我必须亲自编辑它,但这需要很长时间。您的查询没有意义。喜欢是非常慢,所以我使用全文搜索...如果我搜索“兽人必死”我得到了两个结果,我需要对它们进行排序。所以你的查询不是正确的... – 2014-09-28 13:58:40