SELECT * FROM users WHERE (users.name = 'hoge' OR users.age = 20) AND (users.name = 'foo' OR users.age = 30); // 正しい連想配列 $conditions = array( array( 'or' => array('name'=>'hoge', 'age'=>'20')), array( 'or' => array('name'=>'foo', 'age'=>'30')), );
SELECT * FROM users WHERE (users.name = 'hoge' OR users.age = 20) AND (users.name = 'foo' OR users.age = 30); // 正しい連想配列 $conditions = array( array( 'or' => array('name'=>'hoge', 'age'=>'20')), array( 'or' => array('name'=>'foo', 'age'=>'30')), );
CakePHPでfind使うとき SELECT * FROM t WHERE "id" = '1' AND (("status" = '1') OR ("flg" = '1')); というSQLが書きたければ find('find', array( 'conditions' => array( 'id' => 1, 'OR' => array( 'status' => 1, 'flg' => 1, ), ), )); みたいな感じで書くと思います。 で、今回2個のORが使いたいなと思ったんですが、 普通に書いてしまうと find('find', array( 'conditions' => array( 'id' => 1, 'OR' => array( 'status' => 1, 'flg' => 1, ), 'OR' => array( 'status' => 2, 'flg' =>
CakePHP 1.3 にて、 Model::find() の条件式で NULL の扱いを考慮する必要があった。 "IS NULL" を表現したい場合 条件式: <?php $conditions = array('hoge' => null); Where句: WHERE "hoge" IS NULL "IS NOT NULL" を表現したい場合 条件式: <?php $conditions = array('NOT' => array('hoge' => null)); Where句: WHERE NOT ("hoge" IS NULL) "IS NULL" の他に別の値も OR 条件で指定したい場合 条件式: <?php $conditions = array( 'OR' => array( array('hoge' => null), array('hoge' => '1') )
EclipseやIntelliJなど、無料、有料、問わずリッチな開発環境(IDE)が世を席巻して久しいですが、テキストエディタと各種コマンドラインツールで、日々コーディングしている人もまだまだ多いと思います。 今日は、そんなコマンドラインツールでも多様されるコマンドの1つgrep(やack)に変わるツール、ag(the_silver_searcher)を紹介します。 公式サイト the_silver_searcher これは何? grepやackのように指定されたパス(ディレクトリやファイル)から、コマンドに渡されたパターンにマッチする行を表示してくれるツールです。Macであればbrewやports、Linuxであればaptやrpmコマンドでのインストールが可能のようです。私は手元のMacBook Airにbrewを導入しているので、
findでファイル名を検索 findはファイル名を検索します。ほんとにごく頻繁に使う便利なコマンドです。ディレクトリとファイル名を指定して検索しますが、例によってfind / -name “*”こういうコマンドはナンセンスです。検索したいディレクトリに移動してその下位ディレクトリを再帰的に検索するのかベターかと思います。 $ find . -name "*.html" ファイル数を数える ファイル数を数えるコマンドとかあったかもわからないけど、面倒なので書きだして行数数える。diffとる時なんかはこうやって書き出して比べてみるといいです。余分なファイルとか足りないファイルがあったりなかったり。 $ find . -name "*.html" >> htmllist.txt ファイルを再帰的に削除 慎重にやってほしいものですが、先日べらぼうに重いのでPDFだけでも消したいと思って、以下のよう
The page has timed out If this page does not reload automatically, please refresh your browser.
カーネルなど大規模なソースコードを検索したい場合、findとgrepを使ったり、タグジャンプを使うだろう。Eclipse使う場合とか異論はあると思うけど、今日はfindとgrepの合わせ技について調べてみた。 普段はxargsを噛ませて、 $ find . -name \*.c | xargs grep hogehogeとかやるんだけど、findの-execオプションを使った場合とどれくらい性能差があるのだろうか? 評価環境はVMWare Fusion上のUbuntu 11.04。Linux kernel 2.6.28.10のfs以下で、まずは次の3パターンを比較してみた。3回測定してtimeの最良値を示す。おそらく対象ファイルはファイルキャッシュに載っている思う。 $ time find . -name \*.c -exec grep wait_event_interruptible {
MongoDB is designed for store JSON-style objects. The database understands the structure of these objects and can reach into them to evaluate query expressions. Let's suppose we have some objects of the form: > db.persons.findOne() { name: "Joe", address: { city: "San Francisco", state: "CA" } , likes: [ 'scuba', 'math', 'literature' ] }
This was bugging me over the weekend: What is a good way to solve those Where's Waldo? ['Wally' outside of North America] puzzles, using Mathematica (image-processing and other functionality)? Here is what I have so far, a function which reduces the visual complexity a little bit by dimming some of the non-red colors: whereIsWaldo[url_] := Module[{waldo, waldo2, waldoMask}, waldo = Import[url]; wa
ソースコード <?php // 接続 $m = new Mongo(); // データベースの選択 $db = $m->comedy; // コレクション (リレーショナルデータベースのテーブルみたいなもの) の選択 $collection = $db->cartoons; // レコードの追加 $obj = array( "title" => "Calvin and Hobbes", "author" => "Bill Watterson" ); $collection->insert($obj); // 構造が異なる別のレコードの追加 $obj = array( "title" => "XKCD", "online" => true ); $collection->insert($obj); // コレクション内の全件の検索 $cursor = $collection->find();
拡張子を指定して、再帰的にgrepしたい。色々やってみた。 こんな感じ? そんなわけで、findを使って検索範囲を絞りこむ。 xargsを使うと、 % find ../ -name '*.c' | xargs grep hogeうは、めんどい。(速度は早い) コマンド置換で。 % grep hoge $(find ../ -name '*.c')ちょっとすっきり。 zshで。 % grep hoge ../**/*.cいいね。 manを真面目に読んでみるかなぁと 数年の時が流れ manを真面目に読んだら、 % grep hoge --include='*.c' -rあるじゃん。 参考 Man page of GREP 更新履歴 2013/04/11 manを真面目に読んだ。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く