0

次のクエリを使用しています。

SELECT 
b.sales_id,b.category_id,a.bus_title,b.sales_title,b.sale_starts,b.sale_ends 
FROM tbl_sales b INNER JOIN tbl_business a 
ON a.bus_id=b.bus_id 
WHERE b.active=1 
AND CURDATE( ) < DATE_ADD(b.sale_ends, INTERVAL 14 DAY ) 
AND b.category_id='16' OR b.category_id 
IN (SELECT cat_id FROM tb_category WHERE parent_id=16) 
ORDER BY (b.sale_ends=CURDATE()) DESC,(b.sale_ends>CURDATE()) DESC,b.sale_ends ASC

以下に示すように結果を取得し、

sales_id  | category_id |bus_title   | sales_title|sale_starts|sale_ends 
----------|-------------|------------|------------|-----------|----------
 36       |   17        |  my bus    | my sale    |2012-04-03 |2012-05-03  
 35       |   19        |  my bus 1  | my sale 1  |2012-04-03 |2012-05-03
 42       |   16        |  my bus 12 | my sale 12 |2012-04-05 |2012-05-05
 10       |   17        |  my bus 123| my sale 123|2011-12-15 |2011-12-18

X amount of days past the End Date(ここでは 14 日後) の売り上げを省略する (削除しない) 必要があります。しかし、上で書いた MySQL クエリは間違った結果を返し、レコードを End Date で表示します2011-12-18。効果的な方法でクエリを作成するにはどうすればよいですか。

助けが必要。前もって感謝します。

4

1 に答える 1

0

これをクエリに追加します:

   AND sale_ends < DATE_SUB(NOW(), INTERVAL 14 day)
于 2012-04-16T08:02:36.863 に答える