6月
13
2007
分類:
最近更新:
2007-06-13
TWPUG問答 - 查詢結果附上其他資訊?
原問題: 查詢結果附上條件?。需求是有一個來自使用者輸入的對照表,由於其內容每次輸入都不同,故並未建立在資料庫中。現在需要在查詢結果中加入此一對照資訊。
純 SQL 的方式可配合 CASE
關鍵字,但受限於查詢句子的長度及複雜度,僅適用於少量資訊。
SQL way, 少量的對照
用 CASE 關鍵字。See also: 使用 CASE 修飾資料內容。
SELECT id, name,
CASE name
WHEN '乙' THEN 1
WHEN '丙' THEN 2
WHEN '甲' THEN 3
END AS input_seq
FROM mytable;
Programming way, 大量的對照
用關聯陣列建立對照表,再將查詢結果轉入另一個結果陣列後,完成對照關係。
$input_seq = array(
'乙' => 1,
'丙' => 2,
'甲' => 3
);
$query = "SELECT id, name FROM mytable;";
$results = array();
$indexOfRow = 0;
foreach ($pdo->query($query) as $row) {
foreach ($row as $k => &$v) {
$results[$indexOfRow][$k] = $v;
}
$results[$indexOfRow]['input_seq'] = $input_seq[$row['name']];
++$indexOfRow;
}
print_r($results);
樂多舊網址: http://blog.roodo.com/rocksaying/archives/3459603.html