Альтернатива FIND_IN_SET в SQLite? - PullRequest
1 голос
/ 08 августа 2011

В Mysql, FIND_IN_SET используется для поиска значения в наборе.Я пробовал FIND_IN_SET в SQLite, но это не ключевое слово SQL.Я гуглил, но ответа не получил.Если кто-нибудь знает, пожалуйста, скажите мне альтернативу FIND_IN_SET в SQLite.

Ответы [ 3 ]

12 голосов
/ 08 августа 2011

Если вам нужно просто значение true / false, а не индекс, вы можете использовать предложение LIKE:

(',' || column_name || ',') LIKE '%,value,%'
4 голосов
/ 03 января 2013

мы можем написать запрос как изменение в спящий режим

мой старый запрос

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')
0 голосов
/ 03 января 2013

Это мой старый запрос

String query = "SELECT a.content_id, a.content_name, a.image_name, a.image_path, a.rating, d.content_type_name" + "от content_master a, category_content_mappingb, "+" 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' "+" порядок по b.content_mapping_id DESC предел 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"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...