2014-03-30 115 views
0

我在Idiorm文档中找到类似这样的问题。我正在尝试做一个区分大小写的搜索,如:区分大小写的查询Idiorm/SQLite

$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))' 
); 
+0

那个'content'列是如何定义的?更具体地说,它的“整理”是什么? – raina77ow

+0

我用表格定义编辑我的文章。 –

+0

嗯,这很奇怪,这里没有ci整理。好的,当你尝试' - > where_raw(“content LIKE BINARY'%fOo%'”)(而不是'where_like')会发生什么? – raina77ow

回答

2

LIKE运算始终使用不区分大小写的比较。 (列的排序不影响此。)

为了使这样的比较区分大小写,无论是

+0

是的,它完美的工作。还有一个问题,是否可以添加两个可以查看同一查询的字段?我的意思是在内容和标题中搜索该字符串,并至少在其中一个中找到它。 –

+0

如果有人遇到同样的问题,我会自己添加。为了在相同的原始查询中搜索2列,您可以执行以下操作: - > where_raw(“column1 GLOB'* fOo *'或column2 GLOB'* fOo *'”) –