我有一個查詢,我想按字母順序排序,但訣竅是,我希望排序平等對待兩列。舉例來說,如果first_col
第一行等於apple
和second_col
第二行等於aardvark
我想要的second_col
第二行中的值first_col
第一行上市前的值。一個值(不是NULL
或''
)將始終存在於second_col
的每一行中,但first_col
中的值可以是''
。希望我已經解釋了這一點。我不在乎是否必須爲此使用MySQL或PHP,但是一旦排序,數組就會被讀取並回顯到HTML表格中。有什麼想法嗎?使用ORDER BY或PHP排序函數排序MySQL查詢
編輯
這是我的代碼現在。在我的MySQL查詢中,我需要b_name
和l_name
相等。列b_name
並不總是有一個值。當我將這些值放入表中時,它基於b_name
的存在。如果b_name
不存在,則組合f_name
和l_name
以取代b_name
。
$query = "SELECT * FROM customers ORDER BY b_name, l_name";
$result = mysql_query($query);
mysql_close($link);
$num = mysql_num_rows($result);
for ($i = 0; $i < $num; $i++){
$row = mysql_fetch_array($result);
$class = (($i % 2) == 0) ? "table_odd_row" : "table_even_row";
if($row[b_name]!=''){
echo "<tr class=".$class.">";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[c_id]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[b_name]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[phone]."</a></td>";
echo "</tr>";
}
else{
echo "<tr class=".$class.">";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[c_id]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[f_name]." ".$row[l_name]."</a></td>";
echo "<td><a href=Edit_Customer.php?c_id=".$row[c_id].">".$row[phone]."</a></td>";
echo "</tr>";
}
}
?>
</table>
如果第一行是'「一個」,「b''和第二行是'」 B「」 a''和兩列一視同仁,其中那些行的要來的第一和爲什麼? – 2010-06-29 22:06:14
向我們顯示查詢。通常,使用兩列作爲排序的唯一可靠方法需要使用UNION – 2010-06-29 22:07:36