آموزش دستور Like در Sqlite
سلام دوستان امیدوارم حالتات خوب باشد در این سری از آموزش برنامه نویسی اندروید به آموزش دستور Like در Sqlite در برنامه نویسی اندروید می پردازیم از این دستور هر داده ای را که در دیتابیس متشابه یا شبیه باشد را برای ما بر می گرداند در ادامه با ما همراه باشید.
ساخت دیتابیس را ما دیگر در این پست دوباره از اول نمی گویم بلکه شما می توانید از آموزش دسته زیر استفاده کنید.
آموزش های Sqlite در برنامه نویسی اندروید
بعد از اینکه دیتابیس را ایجاد کردید چند راه برای انجام عمل Like وجود دارد.
فکر می کنیم ما فیلد هایی به نام های زیر در دیتابیس داریم.
1 2 | public static final String KEY_ROWID="row"; public static final String KEY_NAME="name"; |
مثلا یک فیلد به نام row_id (همان آیدی Auto_incerment می شود.) داریم و یک فیلد به نام name داریم که براساس همین در پایین جستجو می کنیم ما یک متود برای اینکار درست می کنیم که یک ورودی به نام filter دارد.
1 2 3 | public Cursor fetchNamesByConstraint(String filter) { Cursor cursor=mDb.query(true, DATABASE_NAMES_TABLE, null,"row LIKE '%"+filter+"%' or name LIKE '%"+filter+"%'",null, null, null, null); } |
در بالا آیدی و name را filter می کنیم برای filter از %% استفاده می کنیم و دقت کنید فیلتر باید بین تگ گوتیشن قرار گیرد در بالا mDb همان دیتابیس ماست که باید از قبل new شده باشد.
یک نمونه کد دیگر برای query گرفتن
1 2 3 | sqlQuery = "SELECT * FROM " + TABLE_CALLS + " where " + CALLER_NAME + " like ? COLLATE NOCASE or " + CALLER_NBR + " like ? or " + CALLER_EXT + " like ?" + " or " + IS_OUTGOING + " like ? COLLATE NOCASE or " + TYPE + " like ? COLLATE NOCASE"; Cursor cursor = database.rawQuery(sqlQuery, new String[]{"%" + criterion + "%", "%" + criterion + "%","%" + criterion + "%","%" + criterion + "%","%" + criterion + "%"}); |
یک نمونه کد دیگر
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | if (name.length() != 0) { name = "%" + name + "%"; } if (email.length() != 0) { email = "%" + email + "%"; } if (Phone.length() != 0) { Phone = "%" + Phone + "%"; } String selectQuery = " select * from tbl_Customer where Customer_Name like '" + name + "' or Customer_Email like '" + email + "' or Customer_Phone like '" + Phone + "' ORDER BY Customer_Id DESC"; Cursor cursor = mDb.rawQuery(selectQuery, null); |
نمونه کد دیگر با استفاده از clause متود اندروید
1 2 3 4 5 | Cursor cursor = database.rawQuery(sqlQuery, new String[]{"'%" + criterion + "%'", "'%" + criterion + "%'", "'%" + criterion + "%'", "'%" + criterion + "%'", "'%" + criterion + "%'"}); |
دوستان دقت کنید کدهای بالا به تنهایی کاربردی ندارند بلکه باید با آموزش های قبلی ترکیب شوند ولی ماهیت همان خواهد بود و جای فیلد ها (نام ها یا تعداد فیلد ها کم و زیاد) خواهد شد.
موفق باشید
کارتون فوقالعاده است.
واقعا نمیدونم چطور میتونم تشکر کنم از این همه زحمت.
سلام
خواهش می کنم موفق باشید.