數(shù)據(jù)庫查詢語句需要根據(jù)不同的需求進行編寫。(以MySQL數(shù)據(jù)庫查詢?yōu)槔?/p>
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站制作、做網站、企業(yè)官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯(lián)網時代的諸城網站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
1、如果需要查詢某個數(shù)據(jù)表的所有字段,則使用 * 代表所有字段進行查詢即可。該種方式是最簡單的一種查詢。
2、若需要查詢某表的某些字段,則在select后加上字段名,多個字段名使用 , 進行分隔。
3、若需要根據(jù)指定條件查詢某些數(shù)據(jù)記錄,則可以使用 where關鍵字來進行條件查詢。
4、若需要對查詢結果進行分組,則可以使用 Group By 關鍵字來進行分組查詢。
原生SQL查詢有 query() 和 execute() 兩個方法:
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實例化一個空模型,沒有對應任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$list = $Dao-query("select * from user where uid5");
if($list){
$this-assign('list', $list );
$this-display();
} else {
$this-error($Dao-getError());
}
}
對于 query() 方法返回的數(shù)據(jù)集,跟 select() 一樣,可以在模板里直接循環(huán)輸出。
execute()
execute() 方法用于更新和寫入數(shù)據(jù)的 SQL 操作(注:非查詢操作,無返回數(shù)據(jù)集),返回影響的記錄數(shù)。
例子:
public function read(){
header("Content-Type:text/html; charset=utf-8");
// 實例化一個空模型,沒有對應任何數(shù)據(jù)表
$Dao = M();
//或者使用 $Dao = new Model();
$num = $Dao-execute("update user set email = '12345@xxx.com' where uid=3");
if($num){
echo '更新 ',$num,' 條記錄。';
}else{
echo '無記錄更新';
}
}
如果查詢比較復雜或一些特殊的數(shù)據(jù)操作不能通過 ThinkPHP 內置的 ORM 和 ActiveRecord 模式實現(xiàn)時,就可以通過直接使用原生 SQL 查詢來實現(xiàn)。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應該寫實際的表名字(包括前綴)。
select
你要查詢的字段,多個字段用逗號分隔
from
表
where
條件
order
排序
比如:
select
id,user
from
user
where
id10
order
by
id
desc
上面的
語句就是,查詢返回user表的id和user2個字段,并且id字段的值大于10,按照id字段降序排列
這么寫當然不行,因為in里面是個字符串你放數(shù)組格式就不對
用implode(",", $array)把數(shù)組轉為字符串就行,不用循環(huán)。