2012-01-25 44 views
10

Tôi đang sử dụng FMDB, đây là trình bao bọc cho SQLite. http://github.com/ccgus/fmdbTruy vấn FMDB không hoạt động đúng với LIKE

Đây là dòng truy vấn của tôi:

FMResultSet *athlete = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", search_text]; 

Sử dụng tôi điều này có thể có được một kết quả trở lại nếu tôi gõ vào tên chính xác của các vận động viên. Nhưng, tôi đang cố sử dụng LIKE nên tôi có thể tìm kiếm tên. Nhưng, khi tôi thêm%?% Thay vì chỉ? ... không có gì trả về. Và không có lỗi.

Có ai đã từng gặp phải điều này trước đây và biết tôi đang làm gì sai không?

Cảm ơn tất cả mọi người!

+0

tôi muốn đề nghị cung cấp một liên kết đến FMDB cho những người không quen với nó – bshirley

Trả lời

30

Các ký tự đại diện (%) phải là một phần của biến thế, không phải là chuỗi truy vấn:

FMResultSet *rs = [db executeQuery:@"SELECT * FROM athletes WHERE athlete_name LIKE ?", 
        [NSString stringWithFormat:@"%%%@%%", search_text]]; 
+0

Ah ok ... Cảm ơn nhiều. Tôi đang ngủ ngày hôm nay, vì vậy tôi cho rằng tôi đã thiếu một cái gì đó đơn giản. =) – TheTC

+0

Tôi gặp khó khăn khi làm việc này. Có cú pháp thay thế nào không? Tôi đang hết ý tưởng. – Echilon

+0

Ah tốt đẹp !! Cảm ơn @omz. Tôi rất mới với mysql vì vậy bạn có thể giải thích ý nghĩa của %%% @ %% không? Tôi nhận được% @ ... nhưng ý nghĩa của% khác là gì? Và ?. Tôi giả định? là sql tương đương với% @ nhưng tôi vẫn nhận được cảnh báo này từ nó: 'Đối số dữ liệu không được sử dụng bởi chuỗi định dạng ' – crewshin

Các vấn đề liên quan