gpt4 book ai didi

mysql - 如何使用 WHERE (SELECT ....)

转载 作者:行者123 更新时间:2023-11-29 06:35:49 26 4
gpt4 key购买 nike

我正在做一个非常复杂的报告功能,有很多条件,很多面板,

我在 tbl_my_report 中有一条记录

id    param_filter

101 FIND_IN_SET(t.owner_department,'0620510200,0621510200,0623510200')

查询:

SELECT * 
FROM tbl_abc t WHERE t.id = '1' AND
(SELECT mr.param_filter
FROM tbl_my_report mr WHERE mr.id = '101'
)

如何将其用作有效的条件字符串?

最佳答案

首先,您应该标准化数据,并删除 FIND_IN_SET。因此,应该有一些如下所示的部门表:

id    | owner
'101' | '0620510200'
'101' | '0621510200'
'101' | '0623510200'

有了此表,您可以将查询重构为:

SELECT * 
FROM tbl_abc t
WHERE
t.id = '1' AND
EXISTS (SELECT 1 FROM department WHERE id = '101' AND owner = t.owner_department);

一般来说,您应该避免在数据库表中存储 CSV 或其他非标准化数据,因为它会使查询变得困难。

关于mysql - 如何使用 WHERE (SELECT ....),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53920409/

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