1
我有,我已經實現了搜索查看使用此查詢通過其數據 搜索數據庫:查詢失敗與多個條件
選擇:
//rooms.name = ? OR rooms.name LIKE ? OR rooms.name LIKE ? OR rooms.name LIKE ?
private static final String roomsWithSectorsByNameSelection =
DeltaContract.RoomsEntry.TABLE_NAME +
"." + DeltaContract.RoomsEntry.COLUMN_NAME + " = ? OR " +
DeltaContract.RoomsEntry.TABLE_NAME +
"." + DeltaContract.RoomsEntry.COLUMN_NAME + " LIKE ? OR " +
DeltaContract.RoomsEntry.TABLE_NAME +
"." + DeltaContract.RoomsEntry.COLUMN_NAME + " LIKE ? OR " +
DeltaContract.RoomsEntry.TABLE_NAME +
"." + DeltaContract.RoomsEntry.COLUMN_NAME + " LIKE ?";
表:
roomsWithSectorsByNameQueryBuilder.setTables(
DeltaContract.RoomsEntry.TABLE_NAME + " INNER JOIN " +
DeltaContract.SectorsEntry.TABLE_NAME +
" ON " + DeltaContract.RoomsEntry.TABLE_NAME +
"." + DeltaContract.RoomsEntry.COLUMN_SECTOR_ID + " = " +
DeltaContract.SectorsEntry.TABLE_NAME +
"." + DeltaContract.SectorsEntry._ID);
和查詢:
private Cursor getRoomsWithSectorsByName(Uri uri, String[] projection, String sortOrder) {
String name = DeltaContract.RoomsEntry.getNameFromRoomsUri(uri);
return roomsWithSectorsByNameQueryBuilder.query(deltaDbHelper.getReadableDatabase(),
projection,
roomsWithSectorsByNameSelection,
new String[]{name, (name + "%"), ("%" + name + "%"), ("%" + name)},
DeltaContract.SectorsEntry.TABLE_NAME + "." + DeltaContract.SectorsEntry.COLUMN_NAME,
null,
sortOrder
);
}
大多數搜索我嘗試它工作出色,但對於某些行,即使我鍵入整個單詞
但
,如果我選擇改變這一點,不工作:
//rooms.name = ?
private static final String roomsWithSectorsByNameSelection =
DeltaContract.RoomsEntry.TABLE_NAME +
"." + DeltaContract.RoomsEntry.COLUMN_NAME + " = ?";
,並查詢到這一點:
private Cursor getRoomsWithSectorsByName(Uri uri, String[] projection, String sortOrder) {
String name = DeltaContract.RoomsEntry.getNameFromRoomsUri(uri);
return roomsWithSectorsByNameQueryBuilder.query(deltaDbHelper.getReadableDatabase(),
projection,
roomsWithSectorsByNameSelection,
new String[]{name},
DeltaContract.SectorsEntry.TABLE_NAME + "." + DeltaContract.SectorsEntry.COLUMN_NAME,
null,
sortOrder
);
}
刪除所有喜歡,它工作正常,
應該注意的是,如果我使用不同的列的第一個查詢無法找到該行查找表,它的工作原理和返回行
還應該注意的是,行中的數據是以阿拉伯語存儲的
所以有什麼幫助嗎?謝謝
編輯
例如: 在第一狀態具有所有喜歡的查詢,當我搜索「رئيسمجلسالإدارة」這是這裏顯示的第一行:
(圖像號之一)
按名稱搜索,只得到類似的行:
(圖像編號二)
但是當我按電話號碼搜索找到它:
(圖像之三)
即使我寫在阿拉伯語中的電話號碼:
(圖像排名第四)
這裏是圖片(由於低信譽造成的限制,將它們放在一個鏈接中)
現在,當我更改查詢並刪除所有喜歡它只是發現它:
還應該注意的問題並不侷限於此行,它沒有與其它行也發生遵循同樣的行爲
顯示一些示例數據。 –
[如何 格式化堆棧溢出中的SQL表格 post?](https://meta.stackexchange.com/q/96125) –
@CL。 [這是我的數據庫中的表格](http://pho.to/AhR9z) 無法在該網站中做到這一點導致阿拉伯語rtl對齊搞砸了 –