Tôi biết đây là câu hỏi cũ, nhưng nếu bạn đang viết mã bằng Java và có vấn đề này, điều này có thể hữu ích. Bạn có thể đăng ký một chức năng xử lý việc kiểm tra tương tự. Tôi đã nhận các hình thức đầu bài đăng này: https://stackoverflow.com/a/29831950/1271573
Giải pháp i phụ thuộc vào jdbc sqlite: https://mvnrepository.com/artifact/org.xerial/sqlite-jdbc
Trong trường hợp của tôi, tôi chỉ cần để xem nếu một chuỗi nhất định tồn tại như một phần của chuỗi khác (như '% mystring% '), vì vậy tôi đã tạo ra một hàm Contains, nhưng nó có thể mở rộng điều này để làm một kiểm tra giống như sql hơn bằng cách sử dụng regex hoặc một cái gì đó.
Để sử dụng các chức năng trong SQL để xem nếu MyCol chứa "searchstring" bạn sẽ làm gì:
select * from mytable where Contains(MyCol, 'searchstring')
Đây là Có tôi chức năng:
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);
}
}
}
Để sử dụng chức năng này trước tiên bạn phải đăng ký nó. Khi bạn đang thực hiện với việc sử dụng nó, bạn có thể tùy ý phá hủy nó. Dưới đây là cách thực hiện:
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());
}
Nguồn
2017-03-04 07:34:51
http://stackoverflow.com/a/973777/1427878 – CBroe