使用PHP升级某些SQL行

使用PHP升级某些SQL行,php,sql,Php,Sql,是否有方法返回包含在数组中的id为的SQL表 因此,数组($UserFavs)包含45,65,32的值,这些值与数据库中名为id的列相关,当从表中选择所有行时,我希望首先显示$UserFavs数组中的任何行 我尝试了以下方法,但没有成功: "SELECT * FROM keeper order by id WHERE `id` IN (' . implode(',', array_map('intval', $UserFavs)) . ')';" 但这不起作用 关键是返回所有行,但首先显示数组

是否有方法返回包含在数组中的id为的SQL表

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

我尝试了以下方法,但没有成功:

"SELECT * FROM keeper order by id WHERE `id` IN (' . implode(',', array_map('intval', $UserFavs)) . ')';"
但这不起作用

关键是返回所有行,但首先显示数组中的行

谢谢, B.

您不应该使用查询来查询“显示顺序”,因为这是一个演示细节

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


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

您可以这样使用它:

"SELECT * FROM keeper ORDER by CASE WHEN `id` IN (...) THEN 0 ELSE 1 END"

谢谢@Burhan-你有例子吗?