數(shù)據(jù)庫查詢語句需要根據(jù)不同的需求進行編寫。(以MySQL數(shù)據(jù)庫查詢?yōu)槔?/p>
成都創(chuàng)新互聯(lián)專注于吉州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供吉州營銷型網(wǎng)站建設(shè),吉州網(wǎng)站制作、吉州網(wǎng)頁設(shè)計、吉州網(wǎng)站官網(wǎng)定制、成都小程序開發(fā)服務(wù),打造吉州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供吉州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
1、如果需要查詢某個數(shù)據(jù)表的所有字段,則使用 * 代表所有字段進行查詢即可。該種方式是最簡單的一種查詢。
2、若需要查詢某表的某些字段,則在select后加上字段名,多個字段名使用 , 進行分隔。
3、若需要根據(jù)指定條件查詢某些數(shù)據(jù)記錄,則可以使用 where關(guān)鍵字來進行條件查詢。
4、若需要對查詢結(jié)果進行分組,則可以使用 Group By 關(guān)鍵字來進行分組查詢。
原生SQL查詢有 query() 和 execute() 兩個方法:
query():用于 SQL 查詢操作,并返回符合查詢條件的數(shù)據(jù)集
execute():更新和寫入數(shù)據(jù)的 SQL 操作,返回影響的記錄數(shù)
query()
query() 方法是用于 SQL 查詢操作,和select()方法一樣返回符合查詢條件的數(shù)據(jù)集。
例子:
public function read(){
// 實例化一個空模型,沒有對應(yīng)任何數(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");
// 實例化一個空模型,沒有對應(yīng)任何數(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 '無記錄更新';
}
}
如果查詢比較復(fù)雜或一些特殊的數(shù)據(jù)操作不能通過 ThinkPHP 內(nèi)置的 ORM 和 ActiveRecord 模式實現(xiàn)時,就可以通過直接使用原生 SQL 查詢來實現(xiàn)。
注意:以上都是 user 沒有表前綴的例子,在查詢語句中,查詢的表應(yīng)該寫實際的表名字(包括前綴)。
這么寫當(dāng)然不行,因為in里面是個字符串你放數(shù)組格式就不對
用implode(",", $array)把數(shù)組轉(zhuǎn)為字符串就行,不用循環(huán)。