2014-03-30 155 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 *'」) –