3

我的查询是

SELECT *
FROM `wp_patient_bill`
WHERE `bill_code` !=''
AND `is_billed` = 'Y'
AND `charged` = 'N'
AND `id` IN (97,419,631,632,633,422,635,421,35,799,60,423)

我希望记录数组将根据我的列表进行排序,即 ID

'97,419,631,632,633,422,635,421,35,799,60,423'

. 我正在使用 php。请建议我优化方法。

4

3 回答 3

5

这是另一个解决方案:

SELECT *
FROM `wp_patient_bill`
WHERE `bill_code` !=''
AND `is_billed` = 'Y'
AND `charged` = 'N'
AND `id` IN (97,419,631,632,633,422,635,421,35,799,60,423)
ORDER BY FIELD(`id`,97,419,631,632,633,422,635,421,35,799,60,423)

参考:查询中按 IN 值序列的 SQL 顺序

于 2013-06-06T13:19:38.577 回答
1

假设您的 ID 列表在一个数组中

  1. 运行查询
  2. 循环遍历结果,将每一行结果存储在一个关联数组中,该数组以 ID 为键 $data["{$row['id']}"] = $row;
  3. 遍历您的 ID 列表,并使用 ID 键入关联数组以获取数据。这将按照您想要的 ID 的顺序排列。
于 2013-06-06T13:05:34.513 回答
0

在查询末尾添加“ORDER BY ID”语句。

于 2013-06-06T12:59:17.320 回答