A. thinkphp 根據條件查資料庫存在記錄則修改 不存在則添加
$rs=D("table");
if($rs->where(array("id"=>$id,"cid"=>$cid))->count()){
//存在
}else{
//不存在
}
B. thinkphp 資料庫查詢查詢我想查詢一個值到某一個值之間的數據該怎麼查
$map['dengji'] = array('BETWEEN', '0, 200');
D('Model')->where($map)->select();
C. php查詢sql怎麼加一個選擇時間的條件
$advertisement=M('advertisement');
$time=date('Y-m-d');
$heig=strtotime($time);
$advertisements=$advertisement->order('iddesc')->where('over_time>'.$heig)->where(array('state1'=>0))->limit(1)->select();
我這是TP框架的 我資料庫時間是Ymd的時間戳,這邊查詢一個比現在時間大的數據,前面time我是得到當前時間的Ymd,然後轉換成時間戳,雖然不是你那樣的原生sql,但是希望對你有幫助
D. tp框架怎麼實現二叉樹查詢 如圖,查詢資料庫中小明下面的所有人。到底下面多少人,不清楚。 代碼如何實現
搞個無限級分類,數據結構如下
idparent_idname
10 小明
21小紅
31小剛
42小紫
.....以此類推
$m=M('Table');
$data=$m->order('parent_id')->select();
$data=$this->tree($data,0);
//無限級分類
//更過mysql查詢http://it-school.cn/mysql/mysql-tutorial.html
static$treeList=array();
staticpublicfunctiontree(&$data,$parentId,$count=1)
{
foreach($dataas$key=>$value){
if($value['parent_id']==$parentId){
$value['Count']=$count;
self::$treeList[]=$value;
unset($data[$key]);
self::tree($data,$value['id'],$count+1);
}
}
returnself::$treeList;
}
E. tp5如何跨資料庫查詢
如果是mysql裡面兩個不同的資料庫,應該是可以直接使用 [資料庫名稱].[表名]來關聯的。TP指定的資料庫,是因為他要緩存這個資料庫的表欄位等。試試看行不行,測試通過: SELECT a.*,b.* FROM table1 a LEFT JOIN db2.table2 b ON a.id=b.id
F. thinkphp的資料庫查詢
SELECT*FROM((SELECT*FROMuserasis_mWHEREis_m.isMember='1')UNIONALL(SELECT*FROMuserasnot_isWHEREnot_is.isMember='0'ORDERBYRAND()LIMIT10))astORDERBYt.idDESCLIMIT10,20"
這是雛形,你可以進行優化。
拆分詳解:
(SELECT * FROM user as is_m WHERE is_m.isMember = '1') 這個括弧中,是查詢會員,這個不用多說,你應該明白,至於為什麼要加別名,同表多次查詢自然要加別名以區分;
(SELECT * FROM user as not_is WHERE not_is.isMember = '0' ORDER BY RAND() LIMIT 10 )這個括弧中,是查詢非會員,其中ORDER BY RAND() LIMIT 10是關鍵,它的意思就是從中隨機取十個結果;
SELECT * FROM (會員 UNION ALL非會員) as t ORDER BY t.id DESC LIMIT 10,20。這里即用到了聯合查詢UNION ALL,也用到了子查詢,把聯合查詢的結果作一個結果集,然後從中進行查詢,查詢這個結果集的時候,使用ORDER BY和LIMIT進行分頁處理。
以上,就是該語句的詳解了,當然,其中也需要你做一些處理。
比如要先進行判斷會員數滿沒滿三十個,滿了則無需如此,直接使用會員,沒滿則計算出還差多少個,在查詢非會員那裡LIMIT 數字才好使用;
至於分頁,這個又是另一個問題了,你應該知道怎麼分頁的。
G. php框架 laravel 多重條件查詢。對資料庫查詢,在滿足日期范圍查詢的同時在滿足一個或幾個條件查詢。
laravel的where條件可以無限制加的,想加多少個加多少個的
$result=Model::whereIn(/*條件1*/)
->whereNotIn(/*條件2*/)
->whereBetween(/*條件3*/)
->where(/*條件4*/)
->orderBy()
->get()
//類似這樣的,where條件可以接很多個,沒有限制
H. thinkphp 資料庫查詢怎麼查
thinkphp如何查詢資料庫?
資料庫查詢
ThinkPHP內置了非常靈活的查詢方法,可以快速的進行數據查詢操作。
查詢條件可以用於CURD等任何操作,作為where方法的參數傳入即可。
ThinkPHP可以支持直接使用字元串作為查詢條件,但是大多數情況推薦使用索引數組或者對象來作為查詢條件,因為會更加安全。
查詢方式
一、使用字元串作為查詢條件
這是最傳統的方式,但是安全性不高,例如:
1
2
$User = M("User"); // 實例化User對象
$User->where('type=1 AND status=1')->select();
最後生成的SQL語句是
1
SELECT * FROM think_user WHERE type=1 AND status=1
二、使用數組作為查詢條件
1
2
3
4
5
$User = M("User"); // 實例化User對象
$condition['name'] = 'thinkphp';
$condition['status'] = 1;
// 把查詢條件傳入查詢方法
$User->where($condition)->select();
最後生成的SQL語句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' AND status=1
如果進行多欄位查詢,那麼欄位之間的默認邏輯關系是 邏輯與 AND,但是用下面的規則可以更改默認的邏輯判斷,通過使用 _logic 定義查詢邏輯:
1
2
3
4
5
6
$User = M("User"); // 實例化User對象
$condition['name'] = 'thinkphp';
$condition['account'] = 'thinkphp';
$condition['_logic'] = 'OR'; //定義查詢邏輯
// 把查詢條件傳入查詢方法
$User->where($condition)->select();
最後生成的SQL語句是
1
SELECT * FROM think_user WHERE 'name'='thinkphp' OR `account`='thinkphp'
三、使用對象方式來查詢 (這里以stdClass內置對象為例)
1
2
3
4
5
6
$User = M("User"); // 實例化User對象
// 定義查詢條件
$condition = new stdClass();
$condition->name = 'thinkphp';
$condition->status= 1;
$User->where($condition)->select();
最後生成的SQL語句和上面一樣
1
SELECT * FROM think_user WHERE `name`='thinkphp' AND status=1
使用對象方式查詢和使用數組查詢的效果是相同的,並且是可以互換的,大多數情況下,我們建議採用數組方式更加高效,後面我們會以數組方式為例來講解具體的查詢語言用法。
表達式查詢
上面的查詢條件僅僅是一個簡單的相等判斷,可以使用查詢表達式支持更多的SQL查詢語法,並且可以用於數組或者對象方式的查詢(下面僅以數組方式為例說明),查詢表達式的使用格式:
1
$map['欄位名'] = array('表達式','查詢條件');
表達式不分大小寫,支持的查詢表達式有下面幾種,分別表示的含義是:
1
2
3
4
$map['id'] = array('eq',100); id = 100;
$map['id'] = array('egt',100);id >= 100
$map['name'] = array('like','thinkphp%'); name 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')
本文來自ThinkPHP框架技術文章欄目:http://www.php.cn/phpkj/thinkphp/
以上就是thinkphp如何查詢資料庫的詳細內容,更多請關注php中文網其它相關文章!
I. ThinkPHP中查詢資料庫where()中的條件必須包含主鍵值嗎
不用的哈,用什麼PHP框架,就要多看這個框架的手冊。
http://document.thinkphp.cn/manual_3_2.html#where,
就如此題來說,你傳遞過來的id值,就是表的主鍵。
pid一般是為父鍵的意思,$catemodel->where('pid=%d',$_GET['id'])->select();
查詢的是這個id所對應子集的。
樓上所說這種,有點曲解樓主的意思。樓主的意思,估計就是子集沒數據的緣故。
J. TP5框架如何用Db類查詢這條sql語句
你這段sql,前面那個括弧是沒必要的,全部是and
Db::name('goods')->where('id',1)->where('price',1)
->whereIn('status',[0,2]);
這個寫法可以達到你要的效果
也可以通過where嵌套,生成出來 就是你寫的那種
Db::name('goods')->where('id',1)->where('price',1)
->where(function($db){
return$db->where('status',1)->whereOr('status',2);
});
希望對你有幫