SQL查询语句 [1]
一.使用字符串作为条件查询
在 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]的更多相关文章
- sql查询语句如何解析成分页查询?
我们公司主要mysql存储数据,因此也封装了比较好用mysql通用方法,然后,我们做大量接口,在处理分页查询接口,没有很好分查询方法.sql查询 语句如何解析成“分页查询”和“总统计”两条语句.可能, ...
- 15个初学者必看的基础SQL查询语句
本文由码农网 – 小峰原创翻译,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧. 1.创建表和数据插 ...
- SQL查询语句去除重复行
1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 select distinct * from table(表名) where (条件) 2.存在部分字段相同的纪录 ...
- WordPress 常用数据库SQL查询语句大全
在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名.修改附件目录.批量修改文章内容等等.这个时候,使用SQL查询语句可以大大简化我们的工作量. 关于如何操作SQL查询语 ...
- (转)经典SQL查询语句大全
(转)经典SQL查询语句大全 一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql s ...
- 转: 从Mysql某一表中随机读取n条数据的SQL查询语句
若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1)).例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机 ...
- 经典SQL查询语句大全
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- oracle中sql查询语句的执行顺序
查询语句的处理过程主要包含3个阶段:编译.执行.提取数据(sql查询语句的处理主要是由用户进程和服务器进程完成的,其他进程辅助配合) 一.编译parse 在进行编译时服务器进程会将sql语句的正文放入 ...
- SQL查询语句分类
SQL查询语句有多种,下面总结下.首先先建三张表用于后面的实验 -- 学生表,记录学生信息 CREATE TABLE student( sno ), sname ), ssex ENUM('男','女 ...
- 浅谈SQL优化入门:1、SQL查询语句的执行顺序
1.SQL查询语句的执行顺序 (7) SELECT (8) DISTINCT <select_list> (1) FROM <left_table> (3) <join_ ...
随机推荐
- java时间戳转换
import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Da ...
- EXCEL对比重复数据
一. EXCEL 突出重复项 1. 选择对应的数据 EXCEL 里选择好数据 2. 选择条件格式 这样就完成了数据重复的突出,可以按条件筛选.选择自己想要的数据
- Linux_总结_02_最小化安装后需要安装和更新的命令
一.前言 二.安装命令 1.配置yum源 2.更新yum sudo yum -y update 3.安装ifconfig 最小化安装后,是无法使用ifconfig命令的. 可参见:CentOS7下解决 ...
- 2018年 7月总结&8月计划
7月悄然而过... 英语: a打卡率:1号上课没有完成听力,7号上课没有完成阅读,21,22号考试 没有阅读 PS:学习效果测评 1)不要再阅读china English 2)单词要拼写 3)听力句子 ...
- uva12563 Jin Ge Jin Qu hao(01背包)
这是一道不错的题.首先通过分析,贪心法不可取,可以转化为01背包问题.但是这过程中还要注意,本题中的01背包问题要求背包必须装满!这就需要在普通的01背包问题上改动两处,一个是初始化的问题:把dp[0 ...
- APP登录的机制
1.APP每次发送请求时,都会发送header给服务器,服务器去校验传过来的信息是否正确:校验成功后登录成功,若传入的信息不符合该用户的信息则服务器判断,传给APP登录失败 每次的请求都会传入上图中的 ...
- 洛谷 P1655 小朋友的球
题目描述 @发源于 小朋友最近特别喜欢球.有一天他脑子抽了,从口袋里拿出了N个不同的球,想把它们放到M个相同的盒子里,并且要求每个盒子中至少要有一个球,他好奇有几种放法,于是尝试编程实现,但由于他天天 ...
- 一步一步使用webpack+react+scss脚手架重构项目
前几天做了一个项目:[node]记录项目的开始与完成——pipeline_kafka流式数据库管理项目:因为开发时间紧迫,浅略的使用了一下react,感觉这个ui库非常的符合我的口味,现在趁着有空闲时 ...
- Visualforce入门第五篇_2017.3.1
Visualforce添加过滤器,实现数据的筛选 参考原文:https://trailhead.salesforce.com/modules/visualforce_fundamentals/unit ...
- QtCreator开启-O编译优化的方式
首先,编译优化必须是在Release模式下进行,保证程序没有任何bug的条件下进行执行.编译优化能极大提升程序的运行效率,级别越高速度越快,但是对代码健壮性要求也越高! 选择编译release模式,在 ...