一.使用字符串作为条件查询

在 Home/controller/UserController.class.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查询语句 [1]的更多相关文章

  1. sql查询语句如何解析成分页查询?

    我们公司主要mysql存储数据,因此也封装了比较好用mysql通用方法,然后,我们做大量接口,在处理分页查询接口,没有很好分查询方法.sql查询 语句如何解析成“分页查询”和“总统计”两条语句.可能, ...

  2. 15个初学者必看的基础SQL查询语句

    本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...

  3. SQL查询语句去除重复行

    1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录 ...

  4. WordPress 常用数据库SQL查询语句大全

    在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...

  5. (转)经典SQL查询语句大全

    (转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...

  6. 转: 从Mysql某一表中随机读取n条数据的SQL查询语句

    若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...

  7. 经典SQL查询语句大全

    一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...

  8. oracle中sql查询语句的执行顺序

    查询语句的处理过程主要包含3个阶段:编译.执行.提取数据(sql查询语句的处理主要是由用户进程和服务器进程完成的,其他进程辅助配合) 一.编译parse 在进行编译时服务器进程会将sql语句的正文放入 ...

  9. SQL查询语句分类

    SQL查询语句有多种,下面总结下.首先先建三张表用于后面的实验 -- 学生表,记录学生信息 CREATE TABLE student( sno ), sname ), ssex ENUM('男','女 ...

  10. 浅谈SQL优化入门:1、SQL查询语句的执行顺序

    1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_ ...

随机推荐

  1. java时间戳转换

    import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Da ...

  2. EXCEL对比重复数据

    一.       EXCEL 突出重复项 1.      选择对应的数据 EXCEL 里选择好数据 2.      选择条件格式 这样就完成了数据重复的突出,可以按条件筛选.选择自己想要的数据

  3. Linux_总结_02_最小化安装后需要安装和更新的命令

    一.前言 二.安装命令 1.配置yum源 2.更新yum sudo yum -y update 3.安装ifconfig 最小化安装后,是无法使用ifconfig命令的. 可参见:CentOS7下解决 ...

  4. 2018年 7月总结&8月计划

    7月悄然而过... 英语: a打卡率:1号上课没有完成听力,7号上课没有完成阅读,21,22号考试 没有阅读 PS:学习效果测评 1)不要再阅读china English 2)单词要拼写 3)听力句子 ...

  5. uva12563 Jin Ge Jin Qu hao(01背包)

    这是一道不错的题.首先通过分析,贪心法不可取,可以转化为01背包问题.但是这过程中还要注意,本题中的01背包问题要求背包必须装满!这就需要在普通的01背包问题上改动两处,一个是初始化的问题:把dp[0 ...

  6. APP登录的机制

    1.APP每次发送请求时,都会发送header给服务器,服务器去校验传过来的信息是否正确:校验成功后登录成功,若传入的信息不符合该用户的信息则服务器判断,传给APP登录失败 每次的请求都会传入上图中的 ...

  7. 洛谷 P1655 小朋友的球

    题目描述 @发源于 小朋友最近特别喜欢球.有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝试编程实现,但由于他天天 ...

  8. 一步一步使用webpack+react+scss脚手架重构项目

    前几天做了一个项目:[node]记录项目的开始与完成——pipeline_kafka流式数据库管理项目:因为开发时间紧迫,浅略的使用了一下react,感觉这个ui库非常的符合我的口味,现在趁着有空闲时 ...

  9. Visualforce入门第五篇_2017.3.1

    Visualforce添加过滤器,实现数据的筛选 参考原文:https://trailhead.salesforce.com/modules/visualforce_fundamentals/unit ...

  10. QtCreator开启-O编译优化的方式

    首先,编译优化必须是在Release模式下进行,保证程序没有任何bug的条件下进行执行.编译优化能极大提升程序的运行效率,级别越高速度越快,但是对代码健壮性要求也越高! 选择编译release模式,在 ...