[tp3.2.1]sql查询语句(一)

基本查询方式
    字符串条件查询,
    索引数组条件查询
    对象条件查询
    
SQL语句
大小写是一样的,
但是,执行的时候有一个小写到大写的转换,所以最好写大写

$condition=new stdClass();//对象形式查询
stdClass是php内置类,可以理解为一个空类,这里要把条件作为字段保存到其中,
而 反斜杠 是将命名空间设置为  根目录, 否则会导致当前目录找不到此类。


表达式查询
    大于 小于  等于
    自定义表达式
    
格式:
    $map['字段名']=array('表达式','查询条件');
    

<?php
// 本类由系统自动生成,仅供测试用途
namespace HomeController;

use ThinkModel;
use ThinkController;

class IndexController extends Controller {
    public function index() {
        
        // echo '<meta content-type=text/html;charset=utf-8/>';
        echo '<pre>';
        
        // $user=new Model('User');
        
        // var_dump( $user->select());

        
        $user = M ( 'User' );
        // var_dump($user->where('id=5 AND user="樱桃小丸子"')->select());
        
        // $condition['id']=5;
        // $condition['user']="樱桃小丸子";
        // var_dump($user->where($condition)->select());
        // //上面两条条件是AND的关系
        // $condition['_logic']="OR";
        // var_dump($user->where($condition)->select());

        
        $condition = new stdClass (); // 对象形式查询
                                    // 前面的反斜杠表示按系统提供的查找std类

        $condition->id = 5;
        $condition->user = '樱桃小丸子';
        $condition->_logic = 'OR';
        var_dump ( $user->where ( $condition )->select () );
    }
    public function query() {
        $user = M ( 'User' );
        
        echo '<pre>';
        
        // $map['id']=array('eq',5);//这里到map1是随便起到,没有规定
        // $map['id']=array('neq',5);//id不等于5
        // $map['id']=array('gt',5);//id大于5
        // $map['id']=array('egt',5);//大于等于
        // $map['id']=array('lt',5);//小于
        // $map['id']=array('elt',5);//小于
        
        // 模糊查询,有三种
        // $map['user']=array('LIKE','%小%');//第一种,单一条件
        
        // $map['user']=array('notLIKE','%小%');//第二种, 大小写都无所谓
        // 注意,这里not like没有空格的
        
        // 多条件 模糊查询
        // $map['user']=array('like',array('%小%','%蜡%'),'and');
        
        // between - 区间查找,从m到n
        // $map['id']=array('between','5,7');//找出5到7之间的(5 6 7)
        // $map['id']=array('between',array('5','7'));//这是另一种形式
        
        // not between - 注意中间四是有一个空格的
        // $map['id']=array('not between','5,7');
        
        // in
        // $map['id']=array('in','5,6,8');
        // $map['id']=array('in',array('5','7','8'));
        
        // not in
        // $map['id']=array('not in','5,6,8');
        // $map['id']=array('not in',array('5','7','8'));
        
        // 自定义 查询 - exp

        
        $map['id']=array('exp','=5');
        $map['id']=array('exp','>10');
        
        // 构建一个复杂点的
        $map ['id'] = array (
                'exp',
                '=5' 
        );
        $map ['user'] = array (
                'exp',
                '="樱桃小丸子"' 
        );
        $map ['_logic'] = 'or';
        
        var_dump ( $user->where ( $map )->select () );
    }
}
原文地址:https://www.cnblogs.com/lizunicon/p/4229470.html