2017-05-19 56 views
0

SQLite LIKE語句找不到匹配我在Python 3中有一段代碼來檢索一個id。 LIKE語句的列是18行,其中包含以下文本。當它應該

「Tercera司克1-」 從1號到18號

我匹配的代碼如下:

lig=liga[0] 
    print('lig',lig) 
    cur.execute('''SELECT id FROM Campeonato WHERE id_pais=? AND nombre LIKE 
    ?''', (self.idp,'%'+lig+'%')) 
    foo=cur.fetchall() 
    print('foo',foo) 
    if foo is None or len(foo)==0: 
     return 
    elif len(foo)>1: 
     if len(liga)>1: lig2=' '+liga[-1] 
     print('buscador','%'+lig+'%'+lig2) 
     cur.execute('''SELECT id FROM Campeonato WHERE id_pais=? AND nombre 
     LIKE ?''',(self.idp,'%'+lig+'%'+lig2)) 
     foo=cur.fetchall() 
     print('foofinal',foo) 
     if len(foo)>1: 
      if len(liga)>2: 
       lig=' '.join(liga[0:2]) 
       cur.execute('''SELECT id FROM Campeonato WHERE id_pais=? AND 
       name LIKE ?''',(self.idp,'%'+lig+'%'+lig2)) 
       foo=cur.fetchall() 
       if len(foo)!=1: 
        print('Revisar partido. No se encuentra la liga entre 
        varias opciones')     
        return 
       else: 
        id_competicion=foo[0][0] 

     elif len(foo)==0: 
      print('Revisar partido, no se encuentra la liga')     
      return 
     else: 
      id_competicion=foo[0][0] 
    elif len(foo)==1: 
     id_competicion=foo[0][0] 
    else: 
     id_competicion=None 
    cur.close() 

所以,把它簡單。首先你用LIKE搜索「Tercera」,並返回結果的全部18個結果。然後你搜索「Tercera +任何+空格+數字」,並且應該只返回一個結果並退出循環。

西甲變量是從BSoup,並在年底,所有18個查詢如下:

First look for %Tercera% and retrieve 18 results 

Then look for %Tercera% 2 or whichever of the 18 numbers 

的事是。除了一個以外,一切都是成功的。當它必須搜索%Tercera%3時,它不會與任何內容匹配,並且數據庫中的「TerceraDivisiónG 3」是。

我的意思是沒有其他差異來解釋爲什麼它只發生在數字3,我甚至不知道要尋找什麼。

任何想法,爲什麼它會這樣?

+0

請附上您的數據庫模式或桌 – moritzg

+0

的一些例子有3之後的空白? –

回答

0

好吧,我終於得到了發生了什麼。我在尋找%Tercera%3,這意味着匹配文本必須以「3」結尾。這個問題,在DB Browser中再一次查看,其他所有人都有20個字符,這一行有21個,最後一個換行。 我的搜索是%Tercera%3%,它會很好。

所以,我認爲它解決了。如果您想刪除該帖子,或者將其保留以防萬一某人遇到類似問題,並使用它來指出看看哪些內容取決於您。

還是要謝謝你

+0

我認爲這是一個合適的Q/A對。可能沒有收到大量的upvotes,但沒有必要刪除。你可能會考慮編輯問題和標題,使其對其他人更有用。保持它沒有解決方案的知識,即問你好像你不知道。但要縮短,更像[mcve]。這樣,一些upvotes可能會爲你。 – Yunnosch

+0

您可能想要參加[導覽],它會讓您的個人資料更加完善(並且有些用戶只是因爲徽章丟失而不知所措)。 – Yunnosch