Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在SQL查询中使用ELSE?_Php_Mysql - Fatal编程技术网

Php 如何在SQL查询中使用ELSE?

Php 如何在SQL查询中使用ELSE?,php,mysql,Php,Mysql,我有一个SQL查询来从数据库加载项 $sql_query = "SELECT * FROM pagina_info WHERE kwali='Luxuary' AND id IN ( SELECT CASE WHEN kwali='Luxuary' THEN min(id) ELSE max(

我有一个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状态中,有没有一个词可以用来表示下一个值


在我的select中,我有minid ELSE maxid,而不是maxid,我需要一个单词或其他东西作为下一个值

我找不到任何有用的东西,希望这里的任何人都能帮助我


Bram

没有关键字来获取下一个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."";

你的问题是什么?你需要什么?请详细解释你的问题。在我的选择中,我有minid ELSE maxid,而不是maxid,我需要一个单词或东西来表示下一个值定义“next”,或者,更好的是,提供一个正确的工作示例。已经尝试过,但不起作用。