ThinkPHP like模糊查询,like多匹配查询,between查询,i

ThinkPHP是一个PHP开发框架,它提供了丰富的功能和工具,简化了Web开发的过程。其中,like模糊查询、多匹配查询和between查询是常用的查询操作。以下是这些查询操作的详细介绍。

1. like模糊查询

like是SQL语句中的通配符,用于在数据库中查询符合特定模式的记录。在ThinkPHP中,可以使用模型类的where方法和query方法进行like模糊查询。其中,where方法通常用于查询一条记录,而query方法用于查询多条记录。

1.1 where方法中的like模糊查询

where方法可以接受一个字符串作为条件,例如:

$user = UserModel::where('name like "%张%"')->find();

以上代码将查询表中“name”列中包含“张”字的记录,并返回一条记录。

如果需要查询多条记录,可以使用select方法,例如:

$user_list = UserModel::where('name like "%张%"')->select();

以上代码将查询表中“name”列中包含“张”字的所有记录,并返回一个记录列表。

1.2 query方法中的like模糊查询

query方法可以接受一个数组作为条件,例如:

$user_list = UserModel::query(['name' => ['like', '%张%']]);

以上代码将查询表中“name”列中包含“张”字的所有记录,并返回一个记录列表。

2. like多匹配查询

当需要用多个关键字查询时,可以使用like多匹配查询。例如:

$user_list = UserModel::where('name like "%张%" or name like "%李%"')->select();

以上代码将查询表中“name”列中包含“张”或“李”字的所有记录,并返回一个记录列表。

3. between查询

between查询用于查询某一列的值在指定的范围内的记录。在ThinkPHP中,可以使用模型类的where方法进行between查询。

例如,查询年龄在18岁到30岁之间的记录,代码如下:

$user_list = UserModel::where('age between 18 and 30')->select();

以上代码将查询表中“age”列中值在18到30之间的所有记录,并返回一个记录列表。

4. i查询

“i查询”是指在查询时忽略大小写。在ThinkPHP中,可以使用模型类的where方法和query方法进行i查询。

例如,查询姓名为“张三”的记录,不区分大小写,代码如下:

$user = UserModel::where('name', 'iLIKE', '张三')->find();

以上代码将查询表中“name”列中值为“张三”的记录,并返回一条记录。

如果需要查询多条记录,可以使用select方法,例如:

$user_list = UserModel::where('name', 'iLIKE', '张三')->select();

以上代码将查询表中“name”列中值为“张三”的所有记录,并返回一个记录列表。

总结

以上是ThinkPHP中like模糊查询、多匹配查询、between查询和i查询的用法介绍。在实际应用中,为了提高查询速度和准确性,需要在数据库中建立索引,并尽量减少通配符的使用。

后端开发标签