如何在数组中按顺序获取mysql IN和NOT IN的结果

时间:2013-09-30 07:53:10

标签: php mysql

我有一个查询,我想按字段

按顺序显示结果
$sqlse .= "SELECT ".$tableColumn. " FROM ".$table." WHERE ".$where." AND ".$table2.".account_id IN (353,176,9) OR NOT IN".$table2.".account_id IN (353,176,9)  ORDER BY FIELD(account_id,353,176,9)";

我想按顺序显示结果

account_id             Name

353                    sandy
176                    Abhi
9                      jill
42                     prahsnt
435                    jack

但它按顺序显示结果

42                     prashant
435                    jack
353                    sandy
176                    abhi
9                      jill

2 个答案:

答案 0 :(得分:1)

因为如果找不到传递给FIELD函数的列表中的值,它会返回0

试试这个:

... ORDER BY FIELD(account_id, 9 , 176, 353) DESC

答案 1 :(得分:0)

"SELECT ".$tableColumn. " FROM ".$table." WHERE ".$where." AND 
 ".$table2.".account_id IN (353,176,9)".
"UNION ALL".
"SELECT ".$tableColumn. " FROM ".$table." WHERE ".$where." AND 
 ".$table2.".account_id NOT IN (353,176,9)";
相关问题