有很多与此有关的问题,但所有使用内部连接的相同答案,这是(我认为)不可能在这里。 (说我,如果我错了)ORDER BY字段中的MySQL子查询。 (没有内部连接)
我现在正在做的是调用两个不同的mysql查询来获得结果。它完美的作品。
$db->query("SELECT * FROM `meta` WHERE `metakey` = 'category_order'");
$order = $db->fetch_assoc()['metavalue'];
/*$order = 2,1,12,11,10*/
$db->query("SELECT * FROM `categories` WHERE `parent` = '0' ORDER BY field(ID, $order)");
$cats = $db->fetch();
我们减少查询的号码,我想是这样,
$db->query("SELECT * FROM `categories` WHERE `parent` = '0' ORDER BY field(ID, (SELECT 'metavalue' FROM `meta` WHERE `metakey` = 'category_order'))");
它不显示任何错误,但它给了我错误的输出。有没有办法做到这一点?
EDIT
类别表的结构,
_________________
| ID | name |
-----------------
| 1 | A |
| 2 | B |
| 11 | C |
| 12 | D |
| 10 | E |
-----------------
元表的结构,
______________________________________
| ID | metakey | metavalue |
--------------------------------------
| 1 | category_order | 2,1,12,11,10 |
--------------------------------------
太棒了!这是像素完美的答案,像魅力一样工作。谢谢@Kickstart。 – user1995997 2013-03-13 03:42:21