Geo*_*lov 1 mysql sql sql-server
所以我试图使用WHERE IN子句,我使用多列而不是单列.
这是我尝试但我一直收到错误:
"error near "," ... "
Run Code Online (Sandbox Code Playgroud)
声明:
SELECT
*
FROM
language
WHERE
(char1 , char2, char3, char4) in (('H' , 'H', 'B', 'B') , ('B' , 'B', 'B', 'M'))
AND language.type = 'M'
Run Code Online (Sandbox Code Playgroud)
我不确定这里的错误是什么.我想知道是否有人尝试过类似的东西.这似乎是一个简单的查询.谢谢.
你不能用IN子句做到这一点(至少不是这样).
一种方法是使用或条款
((char1 = 'H' and char2 = 'H' and char3 = 'B' and char4 = 'B') or
(char1 = 'B' and char2 = 'B' and char3 = 'B' and char4 = 'M'))
and language.type = 'M'
Run Code Online (Sandbox Code Playgroud)
如果你真的想使用IN子句,你可以使用连接
像这样的东西(只适用于这个样本,所以你可能需要通过在字段和搜索值之间添加一个分隔符来适应)
where
concat(char1, char2, char3, char4) IN ('HHBB', 'BBBM')
Run Code Online (Sandbox Code Playgroud)