В Mysql FIND_IN_SET
используется для поиска значения в наборе. Я попытался FIND_IN_SET
в SQLite, но это не ключевое слово SQL. У меня есть Googled, но я не получил ответа. Если кто-нибудь знает, скажите мне альтернативу FIND_IN_SET
в SQLite.
Если вам нужно просто значение true / false, а не индекс, вы можете использовать предложение LIKE
:
(',' || column_name || ',') LIKE '%,value,%'
мы можем написать запрос, например, изменить в hibernate critearea
мой старый запрос
select * FROM game_detail WHERE content_id=176 and FIND_IN_SET(12,group_master_id)
Новый запрос
select * FROM game_detail WHERE content_id=176 and (group_master_id LIKE '%12,%'|| group_master_id LIKE '%,12,'|| group_master_id LIKE '%12')
Это мой старый запрос
Строковый запрос = "SELECT a.content_id, a.content_name, a.image_name, a.image_path, a.rating, d.content_type_name" + "из content_master a, category_content_mapping b," + "game_detail c, content_type_master d" + ", где a.content_id = b.content_id "+" и c.content_id = a.content_id "+" и a.content_type_id = d.content_type_id "+" и b.category_id = '"+ category_id +"' "+" и find_in_set ( '"+ group_master_id +"', c.group_master_id) "+" и a.is_active = 'Y' и b.is_active = 'Y' и c.is_active = 'Y' "+" order by b.content_mapping_id DESC limit 0 , 3" ;
Критерии в спящем режиме используются как альтернатива find_in_set
Session session=new Configuration().configure().buildSessionFactory().openSession(); Criteria criteria=session.createCriteria(ContentMaster.class); criteria.setFetchMode("CategoryContentMapping", FetchMode.JOIN); criteria.setFetchMode("GameDetail", FetchMode.JOIN); criteria.createAlias("categoryContentMappings","cat"); criteria.createAlias("contentTypeMaster", "ctm"); criteria.createAlias("gameDetails","game"); criteria.add(Restrictions.eq("cat.categoryMaster.categoryMasterId", 9)); criteria.add(Restrictions.disjunction() .add(Restrictions.like("game.groupMasterId","%12,%")) .add(Restrictions.like("game.groupMasterId","%,12,%")) .add(Restrictions.like("game.groupMasterId","%12%"))); criteria.add(Restrictions.eq("isActive", "y")); criteria.add(Restrictions.eq("cat.isActive", "y")); criteria.add(Restrictions.eq("ctm.isActive", "y")); criteria.addOrder(Order.desc("cat.contentMappingId"));