[英]How to use ELSE in SQL Query?
我有一個SQL查詢可以從數據庫中加載項目。
$sql_query = "SELECT * FROM pagina_info
WHERE kwali='Luxuary' AND
id IN (
SELECT CASE WHEN kwali='Luxuary' THEN min(id)
ELSE max(id)
END
FROM pagina_info
GROUP BY product_name
)
AND voorraad>='1'
LIMIT ".$getal1.", ".$getal2."";
現在我的問題是,在ELSE狀態下是否可以使用一個詞來取下一個值?
在我的選擇中,我然后有min(id)ELSE max(id),而不是max(id)我需要一個單詞或下一個值之類的東西。
我找不到任何有用的東西,希望這里有人可以幫助我。
布拉姆
沒有關鍵字可以獲取下一個ID。 但是我不確定您是指該系列記錄的下一個ID,還是要分配為自動增量主鍵的下一個ID。
假設是第一個,則可以使用用戶變量來添加序列號,也可以將表與自身連接,第二個副本的ID較大但產品名稱匹配。
根據您的確切要求(某些表布局和測試數據會有所幫助),可以使用其中之一。
首先,子查詢與IN子句一起使用
SELECT *
FROM pagina_info
WHERE kwali='Luxuary'
AND id IN
(
SELECT CASE
WHEN kwali='Luxuary' THEN min(a.id)
ELSE min(b.id)
END
FROM pagina_info a
LEFT OUTER JOIN pagina_info b
ON a.product_name = b.product_name
AND a.id < b.id
GROUP BY a.product_name
)
AND voorraad>='1'
LIMIT ".$getal1.", ".$getal2."";
或對子查詢進行聯接。
SELECT pagina_info.*
FROM pagina_info
INNER JOIN
(
SELECT CASE
WHEN kwali='Luxuary' THEN min(a.id)
ELSE min(b.id)
END AS id
FROM pagina_info a
LEFT OUTER JOIN pagina_info b
ON a.product_name = b.product_name
AND a.id < b.id
GROUP BY a.product_name
) c
ON pagina_info.id = c.id
WHERE pagina_info.kwali='Luxuary'
AND pagina_info.voorraad>='1'
LIMIT ".$getal1.", ".$getal2."";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.