使用PHP升级某些SQL行
是否有方法返回包含在数组中的id为的SQL表 因此,数组($UserFavs)包含45,65,32的值,这些值与数据库中名为id的列相关,当从表中选择所有行时,我希望首先显示$UserFavs数组中的任何行 我尝试了以下方法,但没有成功:使用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)) . ')';" 但这不起作用 关键是返回所有行,但首先显示数组
"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-你有例子吗?