********* Thanx in ADvance *****************
我正在运行此查询:
SELECT * FROM `test_lab_mapping` tlm
WHERE FIND_IN_SET(tlm.testID,'1,2')
结果出现在这张图片中:
我想获取所有labId(COLUMN)
行,这些行包含我们将在testId(column)
函数中传递的所有find_in_set
的相应条目。
按照上面的查询我通过了FIND_IN_SET(labId,'1,2')
;
它返回所有数据,但有一行labId = 3
由于labId =1
具有testId=1
和testId=2
的相应条目,并且labId = 2也包含testId 1和2的相应条目。
但labId=3
只有相应的testId=1
条目,但没有testId = 2
条目,因此不应该有结果。
答案 0 :(得分:0)
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没有行,所以{{1} } 3没有出现在结果中。
如果您需要检查更多测试,请添加更多labId
选择:
JOIN