Wiem, że to stare pytanie, ale jeśli programujesz w Javie i masz ten problem, może to być pomocne. Możesz zarejestrować funkcję, która obsługuje podobne sprawdzanie. Mam formularz końcówka tego posta: https://stackoverflow.com/a/29831950/1271573
Rozwiązanie i zależy od sqlite jdbc: https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc
W moim przypadku wystarczyło, aby zobaczyć, czy dany ciąg istniał jako część innego łańcucha (jak „% mystring% "), dlatego stworzyłem funkcję Contains, ale powinno być możliwe rozszerzenie tego, aby uzyskać bardziej podobny do sql sprawdzanie za pomocą regex lub czegoś podobnego.
Aby korzystać z funkcji w SQL, aby zobaczyć czy Mycol zawiera „searchstring” zrobiłbyś:
select * from mytable where Contains(MyCol, 'searchstring')
Oto mój Zawiera funkcja:
public class Contains extends Function {
@Override
protected void xFunc() throws SQLException {
if (args() != 2) {
throw new SQLException("Contains(t1,t2): Invalid argument count. Requires 2, but found " + args());
}
String testValue = value_text(0).toLowerCase();
String isLike = value_text(1).toLowerCase();
if (testValue.contains(isLike)) {
result(1);
} else {
result(0);
}
}
}
Aby korzystać z tej funkcji, musisz się najpierw zarejestrować to. Kiedy skończysz z jej używaniem, możesz opcjonalnie go zniszczyć. Oto jak:
public static void registerContainsFunc(Connection con) throws SQLException {
Function.create(con, Contains.class.getSimpleName(), new Contains());
}
public static void destroyContainsFunc(Connection con) throws SQLException {
Function.destroy(con, Contains.class.getSimpleName());
}
http://stackoverflow.com/a/973777/1427878 – CBroe