'SQLite Select from where column contains string?

What I currently have selects based on a column having the same value..

"SELECT * FROM users WHERE uuid = ?"

But what if I want to return a row based on one of the columns "containing" a string value? Some pseudo code would be:

SELECT * FROM users
WHERE column CONTAINS mystring

Any help is appreciated, I have been searching for other answers but to no avail.



Solution 1:[1]

SELECT * FROM users WHERE column LIKE '%mystring%' will do it.

LIKE means we're not doing an exact match (column = value), but doing some more fuzzy matching. "%" is a wildcard character - it matches 0 or more characters, so this is saying "all rows where the column has 0 or more chars followed by "mystring" followed by 0 or more chars".

Solution 2:[2]

Use LIKE clause. E.g. if your string contains "pineapple123", your query would be:

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

And if your string always starts with any number and ends with any number like "345pineapple4565", you can use:

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

Solution 3:[3]

Checking variable substring ( a more generic answer )

you should use '%'||?||'%' instead

for example in python we'll have something like this:

curser.execute("SELECT * FROM users WHERE column LIKE '%'||?||'%'", (variable,) )

Solution 4:[4]

Just another way using instr, do not need to supply additional character.

Select * from repos where instr("column_name", "Search_string") > 1

Solution 5:[5]

I recently came across this problem and solved it such you can find the string 'time'

text = "SELECT * FROM database WHERE column=" + "'" + str(time) + "'"

cursor.execute(text)

The issue I found was that when you pass in the string time directly as: ..WHERE column=" + time) it formats 'time' as "time" when you want it to format as 'time' which must be to do with the way SQLite is wrote to handle the arguments its passed.

I have time stamped all entries into a database and now I can recall any data from a specific time.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 v_2e
Solution 3 Saleh Hosseini
Solution 4
Solution 5 MyICQ