1

我有一个看起来像这样的数据库

Title     |     ID
---------------------------------
Hello           45
Hi              23
Yo              52
Test            76

然后我有另一个看起来像这样的表:

List                 |   Order
---------------------------------
Main List                76,23,45,52

我要做的是查询数据库并根据第二个表的顺序输出第一个表的标题。

关于执行此类操作的最佳方法的任何想法?

4

1 回答 1

3
SELECT
   *
FROM
    menu m
    INNER JOIN links l ON (l.menu_id = m.menu_id)
WHERE
    m.menu_id = 123
ORDER BY
    FIND_IN_SET(l.link_id, m.menu_order)

显然,您需要更改以反映您的实际表和列名称

Per Michael Berkowski 在下面的评论中,如果您没有两个表之间的链接(因此您无法加入),您可以通过以下方式完成相同的操作:

SELECT t1.*
FROM t1
ORDER BY FIND_IN_SET(ID, (SELECT `Order` FROM t2))

随意摆弄他的 SQLFiddle 示例:http ://sqlfiddle.com/#!2/947e3/2

谢谢,迈克尔

于 2013-02-14T19:21:12.507 回答