Php 如何在SQL查询中使用ELSE?
我有一个SQL查询来从数据库加载项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_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”,或者,更好的是,提供一个正确的工作示例。已经尝试过,但不起作用。