查詢表達式
查詢表達式支持大部分的SQL查詢語法,也是ThinkPHP
查詢語言的精髓,查詢表達式的使用格式:
where('字段名','查詢表達式','查詢條件');
除了where
方法外,還可以支持whereOr
,用法是一樣的。為了更加方便查詢,大多數的查詢表達式都提供了快捷查詢方法。
表達式用法示例:
等於 (=)
Db::table('user')->where('id','=',1)->select();
和下面查詢等效
Db::table('user')->where('id',1)->select();
SQL語句為:
select * from user where id = 1;
相關的有不等於(<>),大於(>),大於等於(>=),小於(<),小於等於(<=),寫法與上面相同;
[NOT]LIKE:同SQL的LIKE
Db::table('user')->where('name', 'like', 'thinkphp%')->select();
SQL語句為:
select * from user where name like 'thinkphp%';
[NOT]BETWEEN:同SQL的BETWEEN AND
查詢條件支持字符串或者數組,例如:
Db::table('user')->where('id','between','1,8')->select();
和下面等效:
Db::table('user')->where('id','between',[1,8])->select();
SQL語句為:
select * from user where id between 1 and 8;
[NOT]IN:同SQL的IN
查詢條件支持字符串或者數組,例如:
Db::table('user')->where('id','in','1,2,5')->select();
和下面等效:
Db::table('user')->where('id','in',[1,2,5])->select();
SQL語句為:
select * from user where id in (1,2,5);
[NOT]NULL:
查詢字段是否(不)是Null
,例如:
Db::table('user')->where('name', null) ->where('email','null') ->where('name','not null') ->select();
SQL語句為:
SELECT * FROM `user` WHERE `name` IS NULL AND `email` IS NULL AND `name` IS NOT NULL
如果你需要查詢一個字段的值為字符串null
或者not null
,應該使用:
Db::table('user')->where('title','=', 'null') ->where('name','=', 'not null') ->select();