gpt4 book ai didi

php - 在 SQL 中标记结果

转载 作者:行者123 更新时间:2023-11-29 08:20:51 25 4
gpt4 key购买 nike

我有一个在 where 中有多个 OR 的查询。

我遇到的问题是标记结果中的行,以便我可以知道每个结果来自哪里。

例如:
从年龄 >10 或体重 >100 或状态为('活跃'、'付费'、'死亡')的人中选择 *

所以这将返回一个人员列表。
当迭代结果中的人员列表时,我需要知道为什么该特定人员出现在结果集中。
因此,如果我可以用原因“标记”或“标记”每个结果,我可以这样做:

if (person.reason=="age") 然后做某事...

if (person.reason=="active") 然后做其他事情...


我不想在迭代结果时再次重复查询中的逻辑(查询是动态构建的,可能会变得相当复杂)。

这可能吗?
(顺便说一句,我正在使用 Doctrine 在 PHP 中执行此操作)

最佳答案

您可以使用 CASE-logic 返回包含原因的列。

像这样:

select 
CASE
WHEN age>10 THEN 'age'
WHEN weight>100 THEN 'weight'
ELSE 'status'
END CASE
,*
from people where age>10 or weight>100 or status in ('active','paying','dead')

我习惯了 MSSQL,但语法几乎相同。检查此页面以供引用: http://dev.mysql.com/doc/refman/5.0/en/case.html

关于php - 在 SQL 中标记结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19450884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com