我希望有人可以告诉我我做错了什么。
我想查询我的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>";
答案 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
后一种方法的好处是生成的列具有正确的数据类型。