thinkphp5中的where写法

sql:SELECT * FROM table WHERE name like ‘%关键字1%‘ OR name like ‘%关键字2%‘ OR name like ‘%关键字3%‘

where在Thinkphp 对应的写法是怎样的?

手册:

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

$map写法:

$map[‘a‘] =array(‘like‘,array(‘%thinkphp%‘,‘%tp‘),‘OR‘);
$map[‘b‘] =array(‘notlike‘,array(‘%thinkphp%‘,‘%tp‘),‘AND‘);

所以上例为:

$map[‘name‘]=array(‘like‘,array(‘%关键字1%‘,‘%关键字2,‘关键字3‘),‘OR‘);

$list = Db(‘table‘)->where($map)->select();

我试了下,不行。会不会是tp3.2的呢?

而下面这种写法就可以。

$list = Db::name(‘User‘)->where(‘username‘,[‘like‘,‘%关键字1%‘],[‘like‘,‘关键字2‘],‘or‘)->select();

你也可以看看下面这篇:

THINKPHP实现查询两个WHERE条件数组间OR查询

https://yq.aliyun.com/ziliao/29407

----------  招募未来大神 -----------------------

如果您有利他之心,乐于帮助他人,乐于分享
如果您遇到php问题,百度且问了其他群之后仍没得到解答

欢迎加入,PHP技术问答群,QQ群:292626152

教学相长!帮助他人,自己也会得到提升!

为了珍惜每个人的宝贵时间,请大家不要闲聊!

愿我们互相帮助,共同进步!

时间: 2024-11-06 07:32:47

thinkphp5中的where写法的相关文章

js中(function(){})()的写法用处

http://blog.csdn.net/u010958922/article/details/47007589 js中(function(){})()的写法用处 http://www.cnblogs.com/lunawzh/p/5274474.html http://www.jb51.net/article/29590.htm 从源码中可以看出jQuery.extend和jQuery.fn.extend是同一个方法,但是具体的作用 却不一样.因为在调用jQuery.extend 和jQuery

c++中的双向链表写法,主要实现(增删查改,链表逆置,构造函数,运算符重载,等)

本文主要内容 1)介绍c++中双向链表的写法. 2)实现双向链表中数据的增.删.查.改.链表逆置.链表输出 3)介绍类中构造函数.析构函数.运算符重载函数的写法 接下来介绍双向链表的成员函数:这写函数放在头文件中,方便编写 #pragma once #include<iostream> using namespace std; #include<assert.h> typedef int DataType; class ListNode  //节点 { public: ListNo

Oracle存储过程中跳出循环的写法

Oracle存储过程中跳出循环的写法 博客分类: oracle Oracle 记录exit和return的用法 exit用来跳出循环 loop IF V_KBP IS NULL THEN           EXIT;    END IF; end loop; return跳出存储过程 loop IF V_KBP IS NULL THEN         return;    END IF; end loop; 跳出loop 一次循环 oracle 11g已提供continue; oracle

django中上传图片的写法(转)

view参数 @csrf_exemptdef before_upload_avatar(request):    before = True    return render_to_response('accounts/before_upload_avatar.html',                              {'before': before},                              context_instance=RequestContext(re

ASP.NET—010:ASP.NET中iframe的写法

在做Asp.net项目中,visual studio 2010创建项目时总会带有default.aspx页.其实也就是所谓的首页,比如以前总喜欢定义一个Index.aspx.然后,所有功能页面从这个页面进去.我也比较喜欢这样用. 之前在default上写了不少frameset,大约是收了html的影响.实际上当我仔细看代码时,发现asp.net并不支持frameset,它支持的是ifram.还是改过来吧. ifram用法也很简单.如下: <head id="Head1" runa

SQL Server中参数化SQL写法遇到parameter sniff ,导致不合理执行计划重用的一种解决方案

parameter sniff问题是重用其他参数生成的执行计划,导致当前参数采用该执行计划非最优化的现象.想必熟悉数据的同学都应该知道,产生parameter sniff最典型的问题就是使用了参数化的SQL(或者存储过程中使用了参数化)写法,如果存在数据分布不均匀的情况下,正常情况下生成的执行计划,在传入在分布数据较多的参数的情况下,重用了正常参数生成的执行计划,而这种缓存的执行计划并非适合当前参数的一种情况. 这种情况,在实际业务中,出现的频率还是比较高的,因为存储过程一般都是采用参数化的写法

swift中editingStyleForRowAtIndexPath的写法

效果图: 首先要实现这句tableView.setEditing(true, animated: true)才能弹出左侧的小圆圈 然而在oc中tableview删除的写法百度一下很常见但是swift中包的很严实: override func tableView(tableView: UITableView, editingStyleForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCellEditingStyle { return U

nodejs项目中的路由写法

1 //两种路由写法,一种封装成函数,返回结果,此种方法可以传递参数, 2 "use strict"; 3 var _ = require("lodash"); 4 var express = require('express'); 5 var router = express.Router(); 6 var thenjs = require('thenjs'); 7 8 module.exports = function(utils) { 9 10 //* 广告

计算机里比特位、字节位的左右顺序和我们现实生活中的数字写法的左右顺序的对比

此文仅适用我自己. 首先明确一个概念:bit是比特的意思:byte是字节的意思.bit没有比特位的意思,比特位的全称应该是bit position:而字节位则是byte position. 叫法:最高位比特.最高位字节.还有就是下标(index)和位(position)是两个概念(位的说法是高低,下标/下标值的说法是大小:位左边是最高,下标右边是最大). 正文: 现实生活中我们写数字一般都是从左到右是最高位到最低位:即210这个数字,2是最高位(百位),0是最低位(个位). 对于数组或List而