簡體   English   中英

如何在SQL查詢中使用ELSE?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM