截断SQL char值

时间:2013-07-18 15:34:07

标签: mysql sql truncate

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

我想查询我的SQL表并收回ClassID和ClassName。

ClassID是一个char(8),包含 123.45L1 350.12 等值。

我试图缩短该值,以便仅收回 123 350

这是我的代码:

    $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>";

2 个答案:

答案 0 :(得分:1)

SELECT LEFT(ClassID , 3) AS somename, ClassName

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

答案 1 :(得分:1)

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

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

如果您想要将整数提取到第一个非小数字符,您可以简单地CAST()字符串,MySQL将完成其余的工作:

SELECT CAST(ClassID AS UNSIGNED) FROM Class

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