我的數據庫列是varchar(25)
數據類型,其值爲1 1/2「,1/2」,3「和4」,表示消防站的軟管直徑。我遇到的問題是,當我想按升序排列時,以下代碼在數據庫中以上述順序吐出軟管直徑,這意味着我想要「1/2,1,1,3,4」而不是在前面的1 1/2。是否有一種方法可以在我的varchar
數據類型中使用小數數據值在SQL中執行此操作?正確分類SQL中的分數數據選擇
謝謝!
PHP代碼
// Select hose locations from fire database
$query = "SELECT hose_diameter FROM hose_diameter ORDER BY hose_diameter";
$result = $mysqli->query($query) or die($mysqli->error.__LINE__);
//FETCH ROWS
if($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
print "<option value=\"".$row['hose_diameter']."\">".$row['hose_diameter']."</option>";
}
}
就我個人而言,我會修改您的數據庫,以便您有一個實際的十進制值,然後您可以正確排序。您可以將它們定義爲常規列,也可以基於另一列進行計算,或者只使用小數,然後讓應用程序將其轉換爲可讀的值。或者你可以有一個你加入的翻譯表(比如Gordon的subquery想法,但是有一個真正的表格)也可以假設你的可能值是固定的。但是如果你想把它看作一個數字,我會避免在數據庫中只有一個混合數字字符串。 –