gpt4 book ai didi

Mysql FIND_In_SET 返回具有该集合的所有值的行

转载 作者:行者123 更新时间:2023-11-29 20:00:24 27 4
gpt4 key购买 nike

************提前谢谢********************

我正在运行此查询:

SELECT * FROM `test_lab_mapping` tlm 
WHERE FIND_IN_SET(tlm.testID,'1,2')

结果如下图所示:

FIND THE RESULT OF THAT QUERY

我想获取所有 labId(COLUMN) 行,这些行具有与我们将在 find_in_set 中传递的所有 testId(column) 对应的条目> 功能。根据上面的查询,我通过了 FIND_IN_SET(labId,'1,2');它正确返回所有数据,但多了一行,其中包含 labId = 3因为 labId =1 具有相应的 testId=1testId=2 条目,并且 labId =2 对于 testId 1 也具有相同的相应条目和 2 。

但是labId=3只有与testId=1相对应的条目,它没有testId = 2条目,所以它不应该进来结果。

最佳答案

FIND_IN_SET 不会执行此操作。

实现此目的的一种方法是对要包含的每个 testId 使用联接:

SELECT labId FROM test_lab_mapping WHERE testId = 1
JOIN SELECT labId FROM test_lab_mapping WHERE testId = 2
USING (labId)

这只会产生在两个测试中都出现的那些 labId 值。连接中的第二个 SELECT 不会产生 labId = 3 的行,因为没有 testId = 2 的行>labId = 3,因此 labId 3 不会出现在结果中。

如果您需要检查更多测试,请添加更多 JOINed 选择:

SELECT labId FROM test_lab_mapping WHERE testId = 1
JOIN SELECT labId FROM test_lab_mapping WHERE testId = 2
JOIN SELECT labId FROM test_lab_mapping WHERE testId = 3
... etc
USING (labId)

关于Mysql FIND_In_SET 返回具有该集合的所有值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554308/

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