Help us understand the problem. What is going on with this article?

OrmでLIKE検索する

More than 5 years have passed since last update.

※自分用のメモ代わり
Orm使っていてLIKE検索しようとした時にどうすりゃいいか
少し悩んだので共有。

状況

5万行ほどのレコードが格納されているMySQLのテーブルの
あるカラムへLIKE検索をかけたい。
かけた結果20件を取得してなんかする

間違ったコード

ormtest.php
$result = \Model_Table::find('all')
          ->where('fieldname LIKE', "%searchtext%")
          ->limit('20');
どこが間違ったか

まず「Allowed memory」って怒られました。
調べた結果、メソッドチェーンはfind('all')した結果のオブジェクトにたいして
条件を絞って検索を行うみたい。
そら5万件を一気に検索したら上記の様なエラーは出ますね…

通ったコード

ormtest.php
$conditions['where'] = array(array('fieldname','LIKE',"%searchtext%"));
$conditions['limit'] = '20';
$result = \Model_Table::find('all',$conditions);
どうやって上手くやったか

http://search.net-newbie.com/fuel/packages/orm/crud.html
こちらのドキュメントを見ながらCRUDで検索SQLに追加をしました。
CakeでFindする時みたいに$conditionsに色々詰め込む方式と僕は認識しました。

反省点

ちょうど隣の席で1時間前位にその問題でこうしたほうがいいとか
色々話してたという…悩む前に相談しろよという…何してんだ僕は。

sys_cat
Perl初心者 Ruby,PHP,JavaScript時々Python,Golang
http://sys-cat.github.io/
gamewith
GameWithは、ゲームをプレイされる皆様がより深くゲームを楽しんで頂ける環境を提供するべく設立されました。あなたがゲームをする時のお供になる。これが私達の目標です。
https://gamewith.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした