gpt4 book ai didi

mysql - 按多列查询 resort 并检查何时按一列找到结果

转载 作者:行者123 更新时间:2023-11-28 23:58:46 24 4
gpt4 key购买 nike

我使用此查询按度假村、滑雪区或州名称选择网络摄像头。我想知道什么时候只有度假村的结果。一旦查询通过度假村而不是滑雪区或州找到记录,我可以标记查询吗?

 SELECT SQL_CALC_FOUND_ROWS 
sv_cam.image,
sv_cam.cam_id,
sv_orte.resort,
sv_canton.can_id,
sv_canton.canton,
sv_country.country
FROM sv_cam
LEFT JOIN sv_orte ON sv_cam.res_id = sv_orte.res_id AND status=0
LEFT JOIN sv_region ON sv_orte.reg_id = sv_region.reg_id
INNER JOIN sv_canton ON sv_orte.can_id = sv_canton.can_id
INNER JOIN sv_country ON sv_canton.cou_id = sv_country.cou_id
WHERE (resort='$region' OR ski='$region' OR canton='$region')

最佳答案

据我了解 - 您的问题的答案是否定的 - 不可能以任何方式“标记”整个查询结果。

但是可以通过匹配的条件来标记每一行:

 SELECT SQL_CALC_FOUND_ROWS 
sv_cam.image,
sv_cam.cam_id,
sv_orte.resort,
sv_canton.can_id,
sv_canton.canton,
sv_country.country,
resort='$region' AS foundByResort,
ski='$region' AS foundBySki,
canton='$region' AS foundByCanton
FROM sv_cam
LEFT JOIN sv_orte ON sv_cam.res_id = sv_orte.res_id AND status=0
LEFT JOIN sv_region ON sv_orte.reg_id = sv_region.reg_id
INNER JOIN sv_canton ON sv_orte.can_id = sv_canton.can_id
INNER JOIN sv_country ON sv_canton.cou_id = sv_country.cou_id
WHERE (resort='$region' OR ski='$region' OR canton='$region')

这将向每行添加三列,每行中有 1 个匹配其条件部分。

然后您可以在您“不想要”的条件下检查所有行是否为零。

或者您可以使用三个查询 - 每个查询一个条件 - 然后您将直接看到它,但如果某些行匹配多个条件,您可能会得到重复的行。

或者您可能有原始查询,然后运行第二个查询:

 SELECT count(1) AS itemsFound
FROM sv_cam
LEFT JOIN sv_orte ON sv_cam.res_id = sv_orte.res_id AND status=0
LEFT JOIN sv_region ON sv_orte.reg_id = sv_region.reg_id
INNER JOIN sv_canton ON sv_orte.can_id = sv_canton.can_id
INNER JOIN sv_country ON sv_canton.cou_id = sv_country.cou_id
WHERE (ski='$region' OR canton='$region')

如果您得到零行,那么您就知道没有滑雪或州的结果。否则,您会得到一行,一列包含匹配项的数量。

关于mysql - 按多列查询 resort 并检查何时按一列找到结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696258/

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