区分大小写查询Idiorm/SQLite


Case sensitive query Idiorm/SQLite

我在Idiorm文档中找不到这样的东西。我正在尝试做一个大小写敏感的搜索,如:

$article=ORM::for_table('articles')->where_like('content','%fOo%')->find_many();

但是我想搜索大小写敏感,我需要配置什么?

LE:表是这样定义的:

ORM::get_db()->exec( 'DROP TABLE IF EXISTS pw_article' );
     ORM::get_db()->exec(
    'CREATE TABLE pw_article(' .
    'art_id INTEGER PRIMARY KEY AUTOINCREMENT, ' .
    'art_title TEXT, ' .
    'art_content TEXT, ' .
    'art_views INTEGER, ' .
    'art_publish_date DATETIME, ' .
    'art_update_date DATETIME, ' .
    'art_author INTEGER, ' .
    'FOREIGN KEY (art_author) REFERENCES pw_user (usr_id))'
);

LIKE操作符总是使用不区分大小写的比较。(列的排序规则不影响这个)

为了区分大小写,

  • execute PRAGMA case_sensitive_like = on;或
  • 将LIKE替换为GLOB:

    ->where_raw("content GLOB '*fOo*'")