Sql 搜索结果是否按特定顺序显示?
结果Sql 搜索结果是否按特定顺序显示?,sql,mysql,Sql,Mysql,结果 SELECT id FROM films WHERE id IN (90,4,40) 但我要它退回90,4,40 我必须做什么?(mysql) 对不起,还有一个问题: 从胶片中选择id,其中按字段(id,90,4,40)排序的id是可以的 但老实说 4 40 90 用于($i=1;$i) 或 或 我想知道它会导致速度变慢?如果表中包含很多字段很多字段?如果结果中有很多行,而不是字段号,则此子句会导致性能下降如果结果中有很多行,则它们将在内存中排序,因此这可能是个问题,具体取决于您有多
SELECT id FROM films WHERE id IN (90,4,40)
但我要它退回90,4,40
我必须做什么?(mysql)
对不起,还有一个问题: 从胶片中选择id,其中按字段(
id
,90,4,40)排序的id是可以的
但老实说
4
40
90
用于($i=1;$i)
或
或
我想知道它会导致速度变慢?如果表中包含很多字段很多字段?如果结果中有很多行,而不是字段号,则此子句会导致性能下降如果结果中有很多行,则它们将在内存中排序,因此这可能是个问题,具体取决于您有多少行。@zerkms:所以不是,因为他只从表中选择了3行需要排序。至少我希望他的id
字段是唯一的。@animuson:那么?上面的任何表达式都将在结果集上求值-这无法优化。我没有说这是一个缓慢的过程,但我强调过,这可能是一个问题,因为仅仅。
for ( $i = 1; $i <10; $id ++ ){
$IDarray[] = random();
}
SELECT id FROM films WHERE id IN "(". implode(',',$IDarray). " ) ";
ORDER BY CASE `id` WHEN 90 THEN 0
WHEN 4 THEN 1
WHEN 40 THEN 2
ELSE 3
END CASE
ORDER BY FIND_IN_SET(`id`, '90,4,40')
ORDER BY FIELD(`id`, 90, 4, 40)