2015-01-21 7 views
7

Co Obecnie mam wybiera w oparciu o kolumny o tej samej wartości ..SQLite Wybierz skąd kolumna zawiera ciąg?

"SELECT * FROM users WHERE uuid = ?" 

Ale co, jeśli chcę wrócić wiersz w oparciu o jedną z kolumn „zawierający” wartość ciągu? Jakiś pseudo kod będzie:

SELECT * FROM users 
WHERE column CONTAINS mystring 

Każda pomoc jest doceniona, szukałem innych odpowiedzi, ale bezskutecznie.

Odpowiedz

18

SELECT * FROM users WHERE column LIKE '%mystring%' zrobi to.

LIKE oznacza, że ​​nie robimy dokładnego dopasowania (column = value), ale dokonujemy bardziej dopasowanych dopasowań. "%" jest znakiem wieloznacznym - pasuje do 0 lub więcej znaków, więc mówi "wszystkie wiersze, w których kolumna ma 0 lub więcej znaków, po których następuje" mystring ", po którym następuje 0 lub więcej znaków".

3

Użyj klauzuli LIKE. E.g. jeśli ciąg zawiera "pineapple123", zapytanie będzie:

SELECT * from users WHERE column LIKE 'pineapple%'; 

A jeśli ciąg rozpoczyna się zawsze z dowolnej liczby, a kończy z dowolnej liczby jak "345pineapple4565", można użyć:

SELECT * from users WHERE column LIKE "%pineapple%";