是否有一种方法可以通过查询获得行,其中内部联接将一串数字与一个整数进行比较?整数是一个ID,数字字符串是该整数的ID,但采用字符串形式。
查询:
SELECT
CT.ID, CEX.ID AS IDFiled, CAT.Name, CAT.ID AS IDCat
FROM
Field_Cat AS CT
INNER JOIN
C_Extra AS CEX WITH(NOLOCK) ON CT.IDCampoExtra = CEX.ID
INNER JOIN
Catg AS CAT WITH(NOLOCK) ON ',' + CT.IDCat + ',' LIKE CAT.ID
WHERE
CEX.ID = 1011
CT.IDCat = 4,8,12
我打算从CAT表中获得ID为4,8,12的行。
对于该查询,结果为空。有谁知道我该如何解决这个问题?
一种技术解决方案是使用LIKE
:
ON CONCAT(',', CT.IDCat, ',') LIKE CONCAT('%,', CAT.ID, ',%')
但是,真正的答案是修复您的数据模型。不好的原因如下: