我正面临着一个独特的挑战。
我有一个有100个数字的表格,叫做HUNDREDNUMBERS。我想选择最好的季度(75到100个数字),并将它们放入另一个名为BESTQUARTER的表中。
我还想选择最差的季度(1到25个数字),我想把它们放到另一个名为WORSTQUARTER的表中。
这是我的Mysql代码,到目前为止,
$Extract_Data = "
CREATE TABLE $BESTQUARTER
SELECT
HUNDREDNUMBERS.number
FROM
HUNDREDNUMBERS order by
HUNDREDNUMBERS.number desc LIMIT 25 ";
$QuerySuccess = mysql_query($Extract_Data, $connection);另一张桌子..。
$Extract_Data = "
CREATE TABLE $WORSTQUARTER
SELECT
HUNDREDNUMBERS.number
FROM
HUNDREDNUMBERS order by
HUNDREDNUMBERS.number asc LIMIT 25 ";
$QuerySuccess = mysql_query($Extract_Data, $connection);问题是这个脚本并不是每次都是100%正确的。请注意两个查询中的ASC和DESC。这是一种尝试对数字进行排序的巧妙方法。
顺便说一句,HUNDREDNUMBERS表中的一些数字有小数点。我需要两个新表BESTQUARTER和WORSTQUARTER中的数据进行进一步处理。
非常感谢您的任何帮助。
发布于 2013-04-08 21:02:11
您正在进行字符串比较,并且这些比较遵循与数字数据类型不同的规则;我建议您更改排序表达式:
ORDER BY CAST(HUNDREDNUMBERS.number AS UNSIGNED) DESC|ASC如果需要分别支持负数或浮点数,也可以使用SIGNED或DECIMAL(M, N)来代替UNSIGNED。
或者(也是最好的),您可以将number列更改为按其自身正确排序的类型;VARCHAR应该主要用于文本。
https://stackoverflow.com/questions/15879380
复制相似问题