SQLite WHERE LIKE中的多个条件

时间:2016-09-02 18:55:31

标签: python database sqlite

在没有使用OR的情况下,WHERE x LIKE%x%语句中是否有多个条件?

基本上我希望能够选择其中column1 LIKE%something%AND column2 LIKE%check1%OR%check2%OR%check3%

然而,使用OR删除了我对column1的第一个先前检查,但我需要这个以保持原位

以下是我目前正在使用的内容..但我想知道是否有更好的方法可以做到这一点,所以我不必重复第1列

SELECT id FROM test WHERE 
column1 LIKE '%bob%' AND column2 LIKE '%something%' 
OR column1 LIKE '%bob%' AND column2 LIKE '%somethingdifferent%' 
OR column1 LIKE '%bob%' AND column2 LIKE '%somethingdifferent2%'

基本上......现在我不得不重复

column1 LIKE %bob%' AND .........

只是想知道是否有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:4)

怎么样:

SELECT id FROM test WHERE 
column1 LIKE '%bob%' AND
    (column2 LIKE '%something%' OR
     column2 LIKE '%somethingdifferent%' OR
     column2 LIKE '%somethingdifferent2%')

它在逻辑上等同......

您还可以使用RegEx:请参阅How do I use regex in a SQLite query?