0

When you use a where in query such as...

SELECT 
ID, A, T
FROM `table1`               
WHERE (A,T)             
IN ($query)

Is there a way to have the result in the same order as your query?

So if the $query was ("David Crock", "Big Crocks"), ("Annie Smith", "My Life")

the result is ordered

342 David Crock Big Crocks
12 Annie Smith My Life
4

2 回答 2

2

如果 $query 是 SELECT 语句,则改为加入。

如果它是一组文字值,则将它们插入具有某种顺序(例如自动增量 id)的临时表中,然后执行 join+order by 或...

SELECT 
ID, A, T
FROM `table1`               
WHERE A             
IN ('David Crock', 'Annie Smith')
ORDER BY LOCATE(A, 'David Crock,Annie Smith');

(抱歉 - 我之前没有遇到过多值“IN”语句,因此不确定它是如何工作的 - 它是否有效?)

于 2013-10-10T15:02:11.533 回答
1

通常你必须在应用层做这个映射,它是你拥有所有相关信息的唯一地方。可以使用TEMPORARY表格以正确的顺序对其进行排序,但最好避免这种情况。

于 2013-10-10T14:54:30.623 回答