是否有办法返回包含在数组中的id的SQL表。
所以数组($ UserFavs)包含45,65,32的值,这些与DB中名为id的列有关,当从表中选择所有行时,我希望显示$ UserFavs数组中的任何行第一
我尝试了以下但没有奏效:
"SELECT * FROM keeper order by id WHERE `id` IN (' . implode(',', array_map('intval', $UserFavs)) . ')';"
但这不起作用。
返回所有行是关键,但数组中的行首先出现。
谢谢, 乙
答案 0 :(得分:1)
“显示顺序”不是您应该使用查询的内容,因为这是演示文稿的详细信息。
相反,您可以单独获取单个记录,将它们附加到将以“显示顺序”存储项目的数组中;然后使用NOT IN
从数据库中过滤其他记录,并将这些行追加到显示有序数组中。
由于数组默认为FIFO
,当您显示记录时,它们将按照添加到数组的顺序进行迭代。
答案 1 :(得分:0)
你可以像这样使用它:
"SELECT * FROM keeper ORDER by CASE WHEN `id` IN (...) THEN 0 ELSE 1 END"