1

我希望有人能告诉我我做错了什么。

我想查询我的 SQL 表并收到一个 ClassID 和一个 ClassName。

ClassID 是 char(8) 并保存诸如123.45L1350.12 之类的值。

我正在尝试缩短该值,以便仅收到123350

这是我的代码:

    $classSelect = "SELECT LEFT(ClassID , 3), ClassName FROM Class GROUP BY ClassID";   
    $result = mysql_query($classSelect);

    echo "<td><select multiple size='10' name='Class'>";

    while ($row = mysql_fetch_array($result)) { 
        echo "<option value='Choice'" . $row['ClassID'] . " - " . $row['ClassName'] . "'>" . $row['ClassID'] . " - " . $row['ClassName'] . "</option>";
    }
    echo "</select></td>";
4

2 回答 2

1

如果您正在寻求将字符串提取到小数点,并且可能并不总是在同一个位置,您可以使用 MySQL 的SUBSTRING_INDEX()函数:

SELECT SUBSTRING_INDEX(ClassID, '.', 1) FROM Class

如果你想提取整数到第一个非小数字符,你可以简单地提取CAST()字符串,剩下的 MySQL 会做:

SELECT CAST(ClassID AS UNSIGNED) FROM Class

后一种方法的好处是生成的列将是正确的数据类型。

于 2013-07-18T15:44:12.563 回答
1
SELECT LEFT(ClassID , 3) AS somename, ClassName

然后将其从 PHP 中引用为$row['somename']

于 2013-07-18T15:40:37.933 回答