gpt4 book ai didi

php - 如果连接存在,mysql更改where子句

转载 作者:行者123 更新时间:2023-11-30 22:28:13 25 4
gpt4 key购买 nike

我想做的是连接同一个表,看看字段“reference_id”是否有值,如果有,那么它应该使用该值来获取包含数据的实际行,并将该数据用于其余部分query - where 和 sort 子句,否则使用原始条目数据。

表“条目”字段:

id, text, type, reference_id, num_count

示例数据:

[1, "", 0, 2, 0],
[2, "some text", 2, 0, 50],
[3, "more text", 2, 0, 60],

应该返回:

row 0: "more text"
row 1: "some text"

查询看起来像这样:

SELECT entries.text
FROM entries
LEFT JOIN entries as e2
ON entries.reference_id = e2.id
WHERE type = $type
ORDER BY num_count DESC

所以最后两个子句应该从entries.typeentries.num_count改为e2.typee2.num_count 如果 reference_id 有东西。我如何实现这一目标?

最佳答案

如果我理解正确,那么您只想使用左连接表值(如果存在),否则使用主表值。

我是这样的:-

SELECT COALESCE(e2.text, entries.text)
FROM entries
LEFT OUTER JOIN entries as e2
ON entries.reference_id = e2.id
WHERE type = $type
ORDER BY COALESCE(e2.num_count, entries.num_count) DESC

关于php - 如果连接存在,mysql更改where子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34631524/

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