Mysql

如何排列在 MYSQL 查詢中選擇的行?

  • October 2, 2013

我正在從表“TABLE_A”中獲取數據,它的主鍵為“PK_ONE”(它是無符號的 INT)。

我正在使用 PK_ONE 上的 where 子句從“TABLE_A”中獲取數據;例如:SELECT PK_ONE from TABLE_A where PK_ONE in (2,88,3999,4,282,33399,1,394);

當我在 PHP 游標中使用上述數據集時;我想確保獲取的數據以 WHERE 子句中“PK_ONE”的值序列出現。

你能給我一些方向來實現同樣的目標嗎?

$$ Currently rows are coming in asending order $$

您正在尋找ORDER BY FIELD(),它看起來像這樣:

SELECT 
 PK_ONE 
from 
 TABLE_A 
where 
 PK_ONE in (2,88,3999,4,282,33399,1,394)
ORDER BY
 FIELD (PK_ONE, 2,88,3999,4,282,33399,1,394)

FIELD()是一個函式,它返回一個元素(第一個參數)在值列表(第二個、第三個、…參數)中的位置。

因此,您需要為此查詢兩次生成/模板化值列表。

引用自:https://dba.stackexchange.com/questions/50850