English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
この記事では、ThinkPHPの表現クエリの例を説明します。皆さんに参考にしていただくために、以下の通りです:
ThinkPHPの表現
ここで言う表現は、ThinkPHPフレームワーク独自の表現を指します。これらの表現は、クエリや更新、削除などの操作のWHERE条件およびテンプレートタグで使用されます。
Where条件では表現式を使用します
Where条件の表現式のフォーマットは:
$map['字段名'] = array('表达式', '操作条件');
その中で $map は一般的な配列変数であり、自分の必要に応じて名前を変更できます。上記のフォーマットの表現は実際の演算子の意味です:
TP演算子 | SQL演算子 | 例 | 実際のクエリ条件 |
---|---|---|---|
eq | = | $map['id'] = array('eq',100); | 相当する:$map['id'] = 100; |
neq | != | $map['id'] = array('neq',100); | id != 100 |
gt | > | $map['id'] = array('gt',100); | id > 100 |
egt | >= | $map['id'] = array('egt',100); | id >= 100 |
lt | < | $map['id'] = array('lt',100); | id < 100 |
elt | <= | $map['id'] = array('elt',100); | id <= 100 |
like | like | $map['username'] = array('like','Admin%'); | username like 'Admin%' |
between | between and | $map['id'] = array('between','1,8); | id BETWEEN 1 AND 8 |
not between | not between and | $map['id'] = array('not between','1,8); | id NOT BETWEEN 1 AND 8 |
in | in | $map['id'] = array('in','1,5,8); | id in(1,5,8); |
not in | not in | $map['id'] = array('not in','1,5,8); | id not in(1,5,8); |
and(デフォルト) | and | $map['id'] = array(array('gt',1),array('lt',10)) | (id > 1) AND (id < 10); |
, 'or', | , 'or', | $map['id'] = array(array('gt',3),array('lt',10), 'or'); | (id > 3) OR (id < 10); |
xor(異或) | xor | 二つの入力のうち一方がtrueの場合に結果がtrue、それ以外の場合はfalseです。例は省略します。 | 1 xor 1 = 0 |
exp | 総合表現式 | $map['id'] = array('exp','in(1,3,8); | $map['id'] = array('in','1,3,8); |
SQLと同様に、ThinkPHPの演算子は大文字と小文字を区別しません。eqとEQは同じです。
between、in条件は文字列または配列をサポートします。以下の2つの書き方は等価です:
$map['id'] = array('not in','1,5,8); $map['id'] = array('not in',array('1','5','8);
exp表現
上表のexpは演算子ではなく、より複雑な条件設定をサポートするための総合的な表現です。expの操作条件は文字列として扱われず、SQLがサポートするどんな文法でも使用できます。関数やフィールド名を含むことができます。
expはwhere条件だけでなく、データの更新にも使用できます、例えば:
$Dao = M("Article"); // saveのデータ配列を構築します、記事のクリック数+1 $data['aid'] = 10; $data['counter'] = array('exp','counter+1); // 条件に基づいてデータの修正を保存します $User->save($data);
注:数字フィールドの加算や減算は、直接
ThinkPHPに関する詳細な内容に興味がある読者は、このサイトの特集を確認してください:《ThinkPHP 入門チュートリアル》、《ThinkPHP テンプレート操作の技術的ポイント》、《ThinkPHP 常用メソッドの要約》、《smarty テンプレートの基本チュートリアル》および《PHP テンプレート技術の要約》。
この記事で述べたことがThinkPHPフレームワークに基づくPHPプログラムのデザインに役立つことを願っています。
声明:この記事の内容はインターネットからネットワークに、著作権者が所有しています。ユーザーが自発的に提供し、アップロードした内容です。このサイトは所有権を持ちません。人間が編集していないため、法的責任を負いません。著作権に関する問題があれば、メールを送信してください:notice#oldtoolbag.com(メール送信時は、#を@に変更して報告してください。関連する証拠を提供してください。一旦確認がとりあえず、このサイトは侵害疑いのコンテンツをすぐに削除します。)