我不能以我想要的方式获得这个SQL查询.我试图匹配使用"喜欢"和"和"的记录,但我没有得到任何结果.当我将其更改为"或"时,我得到了结果.
为什么我使用时没有得到任何结果?
SELECT a.MOD_REQ_NUM,
a.REFERENCE_CODE,
a.REFERENCE_VALUE,
a.ACTIVE_DETAIL,
b.REQUESTOR_WWID,
b.REQUEST_DATE
from DB_MOD_REQ_DETAILS a, DB_MOD_REQ_HEADER b
where a.MOD_REQ_NUM=b.MOD_REQ_NUM
and a.ACTIVE_DETAIL='Y'
and b.ACTIVE_HEADER='Y'
----------------------------------------------------------
and
(a.REFERENCE_VALUE like '%43598%' and a.REFERENCE_CODE = 2)
and
(a.REFERENCE_VALUE like '%3694894%' and a.REFERENCE_CODE = 4)
Run Code Online (Sandbox Code Playgroud)

我希望只能在给定的a.REFERENCE_CODE中搜索a.REFERENCE_VALUE.我有表单字段和C#foreach循环.每个字段都有自己的REFERENCE_CODE.如果用户正在搜索1个字段,我想这样做:
(a.REFERENCE_VALUE like '%43598%' and a.REFERENCE_CODE = 2)
Run Code Online (Sandbox Code Playgroud)
如果用户正在搜索多个字段,我想匹配:
a.REFERENCE_VALUE like '%43598%' and a.REFERENCE_CODE = 2
and
a.REFERENCE_VALUE like '%3694894%' and a.REFERENCE_CODE = 4
Run Code Online (Sandbox Code Playgroud)
这是包含所有数据的查询的屏幕截图

这部分没有意义:
and
(a.REFERENCE_VALUE like '%43598%' and a.REFERENCE_CODE = 2)
and
(a.REFERENCE_VALUE like '%3694894%' and a.REFERENCE_CODE = 4)
Run Code Online (Sandbox Code Playgroud)
怎么可能REFERENCE_CODE是2和4?至少,最后两组条件之间应该存在OR,即
and
((a.REFERENCE_VALUE like '%43598%' and a.REFERENCE_CODE = 2)
or
(a.REFERENCE_VALUE like '%3694894%' and a.REFERENCE_CODE = 4))
Run Code Online (Sandbox Code Playgroud)
您可能也可能不需要将其他AND运算符更改为OR.