我需要在我的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);
答案 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";
选择语法
答案 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
命令查询结果。