很多站长朋友们都不太清楚phpsqleq,今天小编就来给大家整理phpsqleq,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 麻烦高手帮忙看下这段php语句的意思 2、 关于PHP中操作MYSQL语句的问题,路过的进来看下吧。 3、 thinkphp6 版本 mongodb 连表查询 案例? 4、 有关thinkphp的语法 5、 THINKPHP如何获取一个表2个字段中相同的数据 麻烦高手帮忙看下这段php语句的意思这个是模糊查询
上面的查询条件仅仅是一个简单的相等判断,可以使用查询表达式支持更多的SQL查询语法,也是ThinkPHP查询语言的精髓,查询表达式的使用格式:
$map['字段名'] = array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
表达式
含义
协助记忆
EQ 等于(=) equal
NEQ 不等于(<>) not equal
GT 大于(>) greater
EGT 大于等于(>=) equal or greater
LT 小于(<) less than
ELT 小于等于(<=) equal or less than
LIKE 模糊查询
[NOT] BETWEEN (不在)区间查询
[NOT] IN (不在)IN 查询
EXP 表达式查询,支持SQL语法 expression
表达式查询的用法示例如下:
EQ :等于(=)
例如:
$map['id'] = array('eq',100);
和下面的查询等效
$map['id'] = 100;
表示的查询条件就是 id = 100
NEQ: 不等于(<>)
例如:
$map['id'] = array('neq',100);
表示的查询条件就是 id <> 100
GT:大于(>)
例如:
$map['id'] = array('gt',100);
表示的查询条件就是 id > 100
EGT:大于等于(>=)
例如:
$map['id'] = array('egt',100);
表示的查询条件就是 id >= 100
LT:小于(<)
例如:
$map['id'] = array('lt',100);
表示的查询条件就是 id < 100
ELT: 小于等于(<=)
例如:
$map['id'] = array('elt',100);
表示的查询条件就是 id <= 100
[NOT] LIKE: 同sql的LIKE
例如:
$map['name'] = array('like','thinkphp%');
查询条件就变成 name like 'thinkphp%' 如果配置了DB_LIKE_FIELDS参数的话,某些字段也会自动进行模糊查询。例如设置了:
'DB_LIKE_FIELDS'=>'title|content'
的话,使用
$map['title'] = 'thinkphp';
查询条件就会变成 title like '%thinkphp%' 支持数组方式,例如
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND');
生成的查询条件就是:
(a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
[NOT] BETWEEN :同sql的[not] between
查询条件支持字符串或者数组,例如:
$map['id'] = array('between','1,8');
和下面的等效:
$map['id'] = array('between',array('1','8'));
查询条件就变成 id BETWEEN 1 AND 8
[NOT] IN: 同sql的[not] in
查询条件支持字符串或者数组,例如:
$map['id'] = array('not in','1,5,8');
和下面的等效:
$map['id'] = array('not in',array('1','5','8'));
查询条件就变成 id NOT IN (1,5, 8)
EXP:表达式
支持更复杂的查询情况 例如:
$map['id'] = array('in','1,3,8');
可以改成:
$map['id'] = array('exp',' IN (1,3,8) ');
exp查询的条件不会被当成字符串,所以后面的查询条件可以使用任何SQL支持的语法,包括使用函数和字段名称。查询表达式不仅可用于查询条件,也可以用于数据更新,例如:
$User = M("User"); // 实例化User对象// 要修改的数据对象属性赋值$data['name'] = 'ThinkPHP';$data['score'] = array('exp','score+1');// 用户的积分加1$User->where('id=5')->save($data); // 根据条件保存修改的数据
关于PHP中操作MYSQL语句的问题,路过的进来看下吧。这样操作的话, 需要提交页面信息的。建议你这样写:
$action = isset($_REQUEST['action'])?$_REQUEST['action']:'list';
if($action == "list"){
//列表显示
}
elseif($action == "add"){
//添加操作
}
....等等。
另外需要注意的就是你的from表单的action指向,eq:action=“?action=add” 或action ="?action=update"等等。
thinkphp6 版本 mongodb 连表查询 案例?#
public function index(){
// 方法1 您可以使用 $toObjectId聚合实现此目的,该聚合仅将字符串ID转换为mongoose objectId
//
// 多表查询
$pipeline = [
['$addFields'=>['company_id'=>['$toObjectId'=>'$company_id']]],
['$match'=>['$expr'=>['$eq'=>["\$company_id", "$\$company_Id"]]]],
];
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx限公司"]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
"let"=>["company_Id"=>"\$_id" ],
"pipeline"=>$pipeline,
'as'=>'company_pay'
],
]
];
// php 执行 产生了 2571 条数据 但是 用 db.runCommand() 执行 打印的 sql 语句 只有 101 条记录
dump(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));
dump(Db::connect('mongo')->getLastSql());
// 以下 mongodb sql 在 数据库 查询 通过 有 2571 条记录
// db.getCollection("oa_company").aggregate([
// {
// "$lookup": {
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }
// }
// ])
// 以下 mongodb sql 在 数据库 查询 通过 只有 101 条记录
// db.runCommand({
// "aggregate":"oa_company",
// "pipeline":[
// {
// "$lookup":{
// "from": "oa_company_member_pay",
// "let": { "company_Id": "$_id" },
// "pipeline": [
// { '$addFields': { "company_id": { "$toObjectId": "$company_id" }}},
// { "$match": { "$expr": { "$eq": [ "$company_id", "$$company_Id" ] } } }
// ],
// "as": "company_member_pay"
// }
// }
// ],
// "explain":false
// })
// 方法2 或者使用$toString聚合 可以通过 2571
// db.getCollection('oa_company').aggregate([
// { "$addFields": { "companyidStr": { "$toString": "$_id" }}},
// { "$lookup": {
// "from": "oa_company_member_pay",
// "localField": "companyidStr",
// "foreignField": "company_id",
// "as": "pay"
// }}
// ])
/*
$pipelines = [
// ['$match'=>["_id"=>new \MongoDB\BSON\ObjectId("5cb7e580a6c98abc468b458b")]],
// ['$match'=>["name"=>"xxx有限公司"]],
['$addFields'=>['companyidStr'=>['$toString'=>'$_id']]],
[
'$lookup'=>[
'from'=>'oa_company_member_pay',
'localField'=>'companyidStr',
'foreignField'=>'company_id',
'as'=>'company_pay'
],
]
];
// php 执行 产生了 2571 条数据 但是 用 db.runCommand() 执行 打印的 sql 语句 只有 101 条记录
dump(Db::connect('mongo')->name('oa_company')->cmd([
'aggregate'=>'oa_company',
'pipeline'=>$pipelines,
'explain'=>false,
]));
dump(Db::connect('mongo')->getLastSql());
// db.cmd({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});
// 下面 执行 不可以 只有 101 条数据
db.runCommand({"aggregate":"oa_company","pipeline":[{"$addFields":{"companyidStr":{"$toString":"$_id"}}},{"$lookup":{"from":"oa_company_member_pay","localField":"companyidStr","foreignField":"company_id","as":"company_pay"}}],"explain":false});
*/
}
有关thinkphp的语法SELECT
`uid`,`nickname`,`orgid`,`qrcode_url`
FROM
`member`
WHERE
`orgid`
is
NOT
NULL
Thinkphp中查询复杂的情况需要使用查询表达式,使用格式:
$map['字段名']
=
array('表达式','查询条件');
表达式不分大小写,支持的查询表达式有下面几种,分别表示的含义是:
表达式
含义
EQ
等于(=)
NEQ
不等于(<>)
GT
大于(>)
EGT
大于等于(>=)
LT
小于(<)
ELT
小于等于(<=)
LIKE
模糊查询
[NOT]
BETWEEN
(不在)区间查询
[NOT]
IN
(不在)IN
查询
EXP
表达式查询,支持SQL语法
THINKPHP如何获取一个表2个字段中相同的数据这个用OR查询就可以了
(tel = '158XXXX') OR (brel = '158XXXX')
//这里是TP的写法
//不知道对不对
//你可以测试一下
//我一般都是用M() -> query(SQL语句)这样去写的
$model = M('表名');
$where['tel'] = array('eq','1589456125');
$where['btel'] = array('eq','1589456125');
$where['_logic'] = 'OR';
$model -> where($where) -> oreder('id DESC') -> select();
关于phpsqleq的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。