好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

SQL查询语句

.php  下插入

<? php
namespace Home\Controller;
  use   Think\Controller;
  use   Think\Model;

  class  UserController  extends   Controller {
   
      public   function   model() {
          $user  = M(‘User‘ );
          var_dump ( $user ->where(‘id=1‘)-> select());       
    }
} 

这是最基本的调用方法,更详细点则是

  var_dump ( $user ->where(‘id=1 and user = "蜡笔小新"‘)->select()); 

二、下面介绍 数组查询方法 :

就是将  var_dump ( $user ->where(‘id=1‘)->select());  这行用下面的代码替换

    $condition [‘id‘]=1 ;
     $condition [‘user‘]="蜡笔小新" ;
     var_dump ( $user ->where( $condition )->select());    

这时使用调试工具在浏览器中看到的是:

这时使用where默认的是ADN,如果想换成OR的话,再加上一条语句即可:

 $condition [‘_logic‘]=‘or‘;

三、使用对象查询

同样将  var_dump ( $user ->where(‘id=1‘)->select());  用下列代码替换:

 $condition  =  new   \stdClass();
  $condition ->id=1 ;
  $condition ->user = ‘蜡笔小新‘;

PS:stdClass 类是 PHP 内置的类,可以理解为一个空类,在这里可以理解为把条件的
字段作为成员保存到 stdClass 类里。而这里的‘\‘是将命名空间设置为根目录,否则会导
致当前目录找不到此类。使用对象和数组查询,效果是一样的,可以互换。在大多数情况下,
ThinkPHP 推荐使用数组形式更加高效。

 

下面介绍 表达式查询

  对于那些要实现模糊判断的查询,比如大于、等于、小于之类的SQL查询,可以使用表达式查询方式。
  查询表达式格式:$map[‘字段名‘] = array(‘表达式‘,‘查询条件‘);

                    表达式查询

表达式  含义 EQ 等于(=) NEQ  不等于(<>) GT 大于(>) EGT 大于等于(>=) LT  小于(<) ELT  小于等于(<=) [NOT]LIKE  模糊查询 [NOT] BETWEEN  (不在)区间查询 [NOT] IN  (不在)IN查询 EXP  表达式查询,支持SQL语法

在  Home/controller/UserController. class .php  中插入以下代码进行查询:

 $user  = M(‘User‘ );
  $map [‘id‘] =  array (‘eq‘,1 );
  var_dump ( $user ->where( $map )->select());

查询id=1的数据;

从EQ到ELT的只需要改变array(‘eq‘,1)中的eq就行,

这是like 模糊查询的方式:

  $map [‘user‘] = array (‘like‘,‘%小%‘);  查询用户名中带有[小]的数据,

  $map [‘user‘] = array (‘notlike‘,‘%小%‘);  查询用户名中不带有[小]的数据,

  $map [‘user‘] = array (‘like‘, array (‘%小%‘, ‘%蜡%‘), ‘AND‘);  查询用户名中带有[小]和"腊"的数据,这时后面加了AND,如果不加的话,默认的就是OR.

下面是between的用法:

  $map [‘id‘] = array (‘between‘,‘1,3‘);  查询‘id‘在1到3之间的数据,

  $map [‘id‘] = array (‘between‘, array (‘1‘,‘3‘));  和上一句作用相同,

  $map [‘id‘] = array (‘not between‘,‘1,3‘);  查询除了‘id‘不等于1到3之间的数据,这时not和between之间用空格,之前的notlike之间没空格

下面是in的用法:

  $map [‘id‘] = array (‘in‘,‘1,2,4‘);  查询id为1,2,4的数据;

  $map [‘id‘] = array (‘not in‘,‘1,2,4‘);  查询id不等于1,2,3的数据,且这时not和in之间也是有空格

EXP:自定义:   (PS:使用 exp 自定义在第二个参数直接写 where 语句即可)

  $map [‘id‘]= array (‘exp‘,‘=1‘);  查询id等于1的数据

  $map [‘id‘] = array (‘exp‘,‘in (1,2,4)‘);  查询id为1,2,4的数据;

 $map [‘id‘] =   array (‘exp‘, ‘=1‘ );
  $map [‘user‘] =   array (‘exp‘, ‘="蜡笔小新"‘ );
  $map [‘_logic‘] = ‘OR‘ ;
  //  WHERE 为( (`id` =1) ) OR ( (`user` ="蜡笔小新") ) 

 

SQL查询语句

标签:

查看更多关于SQL查询语句的详细内容...

  阅读:32次