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 に答える