使用PHP提升某些SQL行

时间:2013-07-17 10:14:02

标签: php sql

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

所以数组($ UserFavs)包含45,65,32的值,这些与DB中名为id的列有关,当从表中选择所有行时,我希望显示$ UserFavs数组中的任何行第一

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

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

但这不起作用。

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

谢谢, 乙

2 个答案:

答案 0 :(得分:1)

“显示顺序”不是您应该使用查询的内容,因为这是演示文稿的详细信息。

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

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

答案 1 :(得分:0)

你可以像这样使用它:

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