2

有没有办法返回一个包含在数组中的 id 的 SQL 表。

因此,数组 ($UserFavs) 包含 45、65、32 的值,这些值与数据库中名为 id 的列相关,当从表中选择所有行时,我希望首先显示 $UserFavs 数组中的任何行。

我尝试了以下但没有奏效:

"SELECT * FROM keeper order by id WHERE `id` IN (' . implode(',', array_map('intval', $UserFavs)) . ')';"

但这没有用。

返回所有行但数组中的行首先出现是关键。

谢谢,B。

4

2 回答 2

1

“显示顺序”不是你应该使用查询的东西,因为这是一个演示细节。

相反,您可以单独获取各个记录,将它们附加到一个数组中,该数组将以“显示顺序”存储项目;然后使用这些行过滤数据库中的其他记录NOT IN并将这些行附加到您的显示有序数组中。

由于数组默认为FIFO,因此当您显示记录时,它们将按照添加到数组中的顺序进行迭代。

于 2013-07-17T10:20:47.017 回答
0

你可以像这样使用它:

"SELECT * FROM keeper ORDER by CASE WHEN `id` IN (...) THEN 0 ELSE 1 END"
于 2013-07-17T10:27:34.267 回答