sqlite - 在查询中多次IN(绑定)

时间:2014-06-28 14:19:02

标签: sql sqlite

我想重写类似:WHERE a IN (<listA>) OR b IN (<listA>)的内容,这样我就不必使用<listA>(这是我必须绑定查询的值列表)两次,或者多次。

这有可能吗?
感谢

1 个答案:

答案 0 :(得分:0)

你真的不能这样做。但是,你可以这样做:

with listA as (
      select 'item1' as item union all
      select 'item2' union all
      . . .
      select 'itemn'
     )
select t.*
from table t
where a in (select item from listA) or
      b in (select item from listA);

表达式in (<listA>)可能无法完成您的预期。如果值为'1,2,3',那么这将构成一个包含一个元素('1,2,3')的列表,而不是包含三个元素的列表。