Order_by错误1 10 11 12

时间:2018-08-12 20:41:21

标签: php mysql sql-order-by helper

我使用的是php代码,该命令在Order_by中给出了错误,这表明错误顺序的链接显示为1 2 3 4 5。 它出现在1 10 11 12

有人可以帮我解决这个问题吗?

$this->db->order_by('source_type', "DESC");

我认为,尽管这是一个奇怪的问题,但对于许多需要解决此问题的人来说非常有用。.我在互联网上找不到任何可以帮助我解决此问题的东西

1 个答案:

答案 0 :(得分:0)

您的<?php DEFINE('DATABASE_HOST', 'localhost'); DEFINE('DATABASE_DATABASE', '***'); DEFINE('DATABASE_USER', 'root'); DEFINE('DATABASE_PASSWORD', ''); $db = new mysqli(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD, DATABASE_DATABASE); $db->set_charset("utf8"); function run_sql($sql_script) { global $db; // check connection if ($db->connect_error) { trigger_error(print_r(debug_backtrace()).'.Database connection failed: ' . $db->connect_error, E_USER_ERROR); } else { $result = $db->query($sql_script); if($result === false) { trigger_error('Stack Trace: '.print_r(debug_backtrace()).'Invalid SQL: ' . $sql_script . '; Error: ' . $db->error, E_USER_ERROR); } else if(strpos($sql_script, "INSERT")!== false) { return $db->insert_id; } else { return $result; } } } ?> 字段似乎被声明为source_type。如果您尝试

VARCHAR

您将得到结果1(true)。因此,要使这些值正确排序,您需要将它们转换为整数,即

SELECT '2' > '10'

在不了解您的框架的情况下,很难确切地知道如何在ORDER BY CAST(source_type AS UNSIGNED) DESC 方法中进行指定。