$rs=db::name('school')->where($type,'like',"%%")->order('id desc')->limit($limit)->page($page)->select();
出處:
一、tp5.1版本
if($sotitle)else
} $where['level'] = 1;
$rs1=db::name('column')->
where($where)->select();
注意,v5.1.7+
版本陣列方式如果使用exp
查詢的話,一定要用raw
方法。
db::table('think_user')
->where([
['name', 'like', 'thinkphp%'],
['title', 'like', '%thinkphp'],
['id', 'exp', db::raw('>score')],
['status', '=', 1],
])->select();
陣列查詢方式,確保你的查詢陣列不能被使用者提交資料控制,使用者提交的表單資料應該是作為查詢陣列的乙個元素傳入,如下:
db:
:table('think_user')
->where([
['name', 'like', $name . '%'],
['title', 'like', '%' . $title],
['id', '>', $id],
['status', '=', $status],
])->select();
注意,相同的字段的多次查詢條件可能會合併,如果希望某乙個where
方法裡面的條件單獨處理,可以使用下面的方式,避免被其它條件影響。
$map = [
['name', 'like', 'thinkphp%'],
['title', 'like', '%thinkphp'],
['id', '>', 0],
];db::table('think_user')
->where([ $map ])
->where('status',1)
->select();
生成的sql語句為:
select * from
`think_user`
where ( `name`
like
'thinkphp%'
and`title`
like
'%thinkphp'
and`id` > 0 ) and
`status` = '1'
如果使用下面的多個條件組合
$map1 = [
['name', 'like', 'thinkphp%'],
['title', 'like', '%thinkphp'],
];$map2 = [
['name', 'like', 'kancloud%'],
['title', 'like', '%kancloud'],
];
db::table('think_user')
->whereor([ $map1, $map2 ])
->select();
生成的sql語句為:
select * from
`think_user`
where ( `name`
like
'thinkphp%'
and`title`
like
'%thinkphp' ) or ( `name`
like
'kancloud%'
and`title`
like
'%kancloud' )
善用多維陣列查詢,可以很方便的拼裝出各種複雜的sql語句
引用:
like 模糊查詢
sql 模糊查詢 逗號,在sql中like中不需要轉義,但是如果 在sql中的某個欄位值用 分隔資料,需要獲取資料的時候直接把 拆分成資料,獲得乙個資料的list。例如 需要查詢某欄位是否包含乙個值,111是否存在於1111,2111,1112,1121,1113這個欄位中 因為根據 逗號分開,要求...
like模糊查詢
逗號,在sql中like中不需要轉義,但是如果 在sql中的某個欄位值用 分隔資料,需要獲取資料的時候直接把 拆分成資料,獲得乙個資料的list。例如 需要查詢某欄位是否包含乙個值,111是否存在於1111,2111,1112,1121,1113這個欄位中 因為根據 逗號分開,要求的答案是 不在字段...
Oracle 模糊查詢like
在這個資訊量劇增的時代,如何幫助使用者從海量資料中檢索到想要的資料,模糊查詢是必不可少的。那麼在 中模糊查詢是如何實現的呢?一 我們可以在where子句中使用like關鍵字來達到oracle模糊查詢的效果 在where子句中,可以對datetime char varchar欄位型別的列用like關鍵...