在哪里可以在我的MYSQL查询中插入ORDER BY

时间:2012-01-05 18:45:17

标签: php mysql

我需要在我的SQL语句中按“ORDER BY prod_name”对结果进行排序,但我无法弄清楚是否可以使用它。我试过了

$thisProduct .= " AND prod_type = 1 ORDER BY prod_name";

以及之后

$thisProduct .= " AND ID = '" . mysql_real_escape_string($_GET['product']) . "' ORDER BY prod_name";

但是我无法正确排序我的结果。我是在错误的位置下订单还是我错误地查询了数据库?

先谢谢你,我对MYSQL查询还很陌生。

$thisProduct = "SELECT prod_name AS Name, days_span, CONCAT(LEFT(prodID,2),ID) AS ID,     geo_targeting FROM products WHERE status = 'Active' AND vendID = ".$resort['vendID'];
if (isset($_GET['product']) AND is_numeric($_GET['product'])) {
$thisProduct .= " AND ID = '" . mysql_real_escape_string($_GET['product']) . "'";
}
else {
    $thisProduct .= " AND prod_type = 1";
}
$thisProduct .= " LIMIT 1";

$getThisProduct = mysql_query($thisProduct);
if (!$getThisProduct/*  OR mysql_num_rows($getThisProduct) == 0 */) {
    header("HTTP/1.0 404 Not Found");
    require APP_PATH . '/404.html';
    die();
}

$thisProductData = mysql_fetch_assoc($getThisProduct);

5 个答案:

答案 0 :(得分:1)

你应该:

$ thisProduct。=“ORDER BY prod_name”;
$ thisProduct。=“LIMIT 1”;

(请注意,LIMIT 1意味着您只能获得一条记录)。

答案 1 :(得分:0)

假设您的查询正确并且您希望按名称生成第一个产品:

$thisProduct .= " ORDER BY prod_name LIMIT 1";

答案 2 :(得分:0)

我相信它应该在你的“LIMIT 1”之前,如:

$thisProduct .= " ORDER BY prod_name LIMIT 1";

答案 3 :(得分:0)

在LIMIT

之前插入
$thisProduct .= " ORDER BY prod_name LIMIT 1";

您可以在http://dev.mysql.com/doc/refman/5.0/en/select.html

选择语法

答案 4 :(得分:0)

SELECT查询通常采用以下形式

SELECT which_all_to_select 
FROM which_table/tables 
WHERE criteria 
ORDER BY column_name ASC/DESC;

ASC升序,DESC降序

column_name子句中指定的ORDER BY命令查询结果。