0
我嘗試根據其中一個表字段對結果ASC
或DESC
進行排序。 這裏是我的查詢:mysql查詢 - ORDER BY病例情況
SELECT
tenders.id AS tender_id,
tenders.title AS tender_title,
tenders.descr AS tender_desc,
tenders.init_date AS init_date,
tenders.init_time AS init_time,
tenders.end_date AS end_date,
tenders.end_time AS end_time,
tenders.city_sing AS city_sing,
tenders.tender_header AS tender_header,
tenders.tender_win AS tender_win,
tender_items.id AS item_id,
tender_items.tender_id AS item_tender_id,
tender_items.item_name AS item_name,
tender_items.item_quan AS item_quan,
tenders_items_bids.tender_id AS bid_tender_id,
tenders_items_bids.id AS bid_id,
tenders_items_bids.user_id AS bidder_id,
tenders_items_bids.single_price AS single_price,
tenders_items_bids.single_vat AS single_vat,
tenders_items_bids.supply AS supply,
tenders_items_bids.timeout AS timeout,
tenders_items_bids.on_date AS on_date,
tenders_items_bids.on_time AS on_time,
clients.id AS client_id,
clients.name AS client_name,
Sum((tenders_items_bids.single_vat+tenders_items_bids.single_price)*tender_items.item_quan) AS sub_total,
Sum(tenders_items_bids.single_price*tender_items.item_quan) AS sub_total_no_vat,
cities.id AS ct_id,
cities.name AS city_name,
cities.logo AS city_logo set @orderBy = tender_win
FROM
tenders
JOIN tender_items
ON tenders.id = tender_items.tender_id
JOIN cities
ON cities.id = tenders.city_sing
JOIN tenders_items_bids
ON tenders_items_bids.tender_id = tenders.id
AND tenders_items_bids.item_id = tender_items.id
JOIN clients
ON clients.id = tenders_items_bids.user_id
WHERE
tenders.id = $tender_id
GROUP BY
tenders_items_bids.user_id
ORDER BY
CASE
WHEN tender_win = '1' THEN sub_total ASC
ELSE sub_total DESC
end
最後一部分纔是最重要的,在ORDER BY
。無論如何,我總是收到失敗的消息。任何人都可以幫助我這個查詢?
你不能讓「條件SQL」就像你一樣。 'order by'需要一個字段名,而你的情況是「返回」'foo asc'或'foo desc'。 –
下一次,請將您的查詢格式化爲人類可讀的格式。 – mathielo