首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在laravel 5.7中,FIND_IN_SET查询不能工作

在 Laravel 5.7 中,FIND_IN_SET 查询可能无法正常工作的原因可能是由于数据库引擎不支持 FIND_IN_SET 函数或者查询语句中的参数不正确。FIND_IN_SET 函数用于在一个逗号分隔的字符串列表中查找指定值的位置。

要解决这个问题,可以尝试以下几个步骤:

  1. 确保数据库引擎支持 FIND_IN_SET 函数。FIND_IN_SET 函数在一些数据库引擎中可能不被支持,例如 SQLite。可以查看 Laravel 5.7 所使用的数据库引擎的文档,确认是否支持 FIND_IN_SET 函数。
  2. 检查查询语句中的参数是否正确。FIND_IN_SET 函数接受两个参数,第一个参数是要查找的值,第二个参数是逗号分隔的字符串列表。确保查询语句中这两个参数的顺序和格式正确。
  3. 如果数据库引擎不支持 FIND_IN_SET 函数,可以考虑使用其他方法来实现相同的功能。例如,可以使用 WHERE 子句的 LIKE 操作符来模拟 FIND_IN_SET 函数的功能。

以下是一个示例查询,演示如何使用 FIND_IN_SET 函数在 Laravel 5.7 中进行查询:

代码语言:txt
复制
$users = DB::table('users')
            ->whereRaw("FIND_IN_SET('2', roles)")
            ->get();

在上面的示例中,我们使用 FIND_IN_SET 函数来查找 roles 列中包含值 '2' 的用户。

关于 Laravel 5.7 中 FIND_IN_SET 查询无法工作的更多信息,可以参考 Laravel 官方文档中的数据库查询部分:https://laravel.com/docs/5.7/queries

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel 6 中缓存数据库查询结果的方法

加快应用程序速度方面,缓存可能是最有效的。Laravel 预先安装了缓存驱动程序。因此你可以直接使用 Redis, Memcached 或者使用本地文件进行缓存操作。Laravel 附带了此功能。...这一次,我们将讨论直接从模型缓存 Eloquent 查询,从而使数据库缓存变的轻而易举。 这个包可以 GitHub 找到,此文档将介绍该应用程序的所有要点。...如果此查询缓存中为空,那么会去数据库中获取数据,并且缓存它,以便下次可以从缓存中获取。如果此查询存在于缓存中,那么直接返回。...// 数据库访问,查询结果存储缓存中 Article::latest()- get();// 未访问数据库,查询结果直接从缓存中返回。...Laravel 6 中缓存数据库查询结果的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

5.2K41

Laravel Eloquent 模型类中使用作用域进行查询

问题引出 通过 Eloquent 模型实现增删改查这篇教程中,我们已经学习了如何在 Eloquent 模型类中进行各种查询,但是这些查询大多需要手动调用查询构建器提供的各种方法来实现。...,查询构建器上应用过滤器方法并将其返回。...这个工作可以通过 User 模型类中重写父类的 boot 方法来完成: protected static function boot() { parent::boot(); static...::class])->get(); # 移除多个类/匿名函数 局部作用域 「全局作用域」虽然强大,但不够灵活,有的时候我们的预置过滤器可能因不同场景而已,不同场景需要不同的预置过滤器,这个时候就不能使用...本系列教程首发在Laravel学院(laravelacademy.org)

2.5K20

Laravel5.6中使用Swoole的协程数据库查询

高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询...如果你Swoole业务代码是写在一个叫server.php的文件中,那么命令行下输入php server.php开启。...这是比较头疼的事情,因为Laravel框架可不是这样的运转的,那如何能与Laravel结合呢?没错,自定义一条Artisan Command,就这么简单。...强烈推荐在你的laravel项目中,使用 laravel-s 这个包. composer require "hhxsv5/laravel-s:~1.0" -vvv 然后,依赖 kuaiapp/db 这个包...start 现在你就可以测试你的数据库查询了。

3.7K20

MYSQL用法(十五) MySQL中FIND_IN_SET()用法

FIND_IN_SET(str,strlist) 返回str字符串集strlist中的序号(任何参数是NULL则返回NULL,如果str没找到返回0,参数1包含","时工作异常) 例子: 查询表字段...用FIND_IN_SET() 更简单 SELECT * FROM linkinfo WHERE FIND_IN_SET('1',pingid 原来以为mysql可以进行这样的查询----->(一)...为什么第一条不能取得正确的结果,而第二条却能取得结果。...原因其实是(一)中 (list)    list是变量, 而(二)中 ('libk', 'zyfon', 'daodao')是常量 所以如果要让(一)能正确工作,需要用find_in_set()---...select id, list, name from table where FIND_IN_SET( 'daodao' , list); 总结:所以如果list是常量,则可以直接用IN, 否则要用FIND_IN_SET

2.8K30

mysql中find_in_set()函数的使用

所以如果要让(一)能正确工作,需要用find_in_set(): SELECT id,name,list from tb_test WHERE FIND_IN_SET('daodao',list); -...-------------------------------------------------------- find_in_set()和like的区别: mysql中,有时我们在做数据库查询时,...总结:like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。...所以如果要让(一)能正确工作,需要用find_in_set(): SELECT id,name,list from tb_test WHERE FIND_IN_SET('daodao',list); -...-------------------------------------------------------- find_in_set()和like的区别: mysql中,有时我们在做数据库查询时,

3.4K40

MySQL find_in_set函数的深入解析与应用

在数据库操作中,我们经常会遇到需要处理以逗号分隔的字符串,并且需要根据这些字符串进行查询的情况。MySQL提供了一个非常实用的函数FIND_IN_SET()来处理这种特定的查询需求。...注意事项 使用FIND_IN_SET()函数时,需要注意以下几点: FIND_IN_SET()对大小写敏感。 FIND_IN_SET()函数不支持模糊匹配。...FIND_IN_SET()函数只能用于字符类型的字段,不能用于数字类型的字段。 性能考虑 虽然FIND_IN_SET()某些场景下非常有用,但它通常不被认为是性能最优的选择。...因为FIND_IN_SET()函数不会利用索引,所以大型数据集上使用时可能会导致查询速度变慢。如果经常需要执行此类查询,建议将数据设计为关系型,例如使用多对多关联表来存储用户和爱好的关系。...设计数据库和查询时,最好还是遵循数据库范式规则,将多值属性分解成独立的表结构,以便更有效地利用数据库索引,提高查询性能。 后续内容文章持续更新中… 近期发布。

50910

使用ADO和SQLExcel工作表中执行查询操作

学习Excel技术,关注微信公众号: excelperfect 我们可以将存储数据的工作表当作数据库,使用ADO技术,结合SQL查询语句,可以工作表中获取满足指定条件的数据。...图1 下面,需要将工作表Sheet2的数据中物品为“苹果”的数据行复制到工作表Sheet3中,如下图2所示。 ?...Source=" &ThisWorkbook.FullName & ";" & _ "ExtendedProperties=""Excel 12.0;HDR=Yes;"";" '字符串中存储查询语句...同一代码中,只需要连接数据库一次,接着可以执行多个查询操作,无需每次查询前都进行连接。...SQL查询语句为: query = "Select * from [" & wksData.Name _ & "$] Where 物品='苹果' " 工作表wksData中查询物品为“苹果”的记录

4.4K20

【黄啊码】thinkphp5查询字段是否包含某个值的方法

最新解决方案: 对于一些实在复杂的查询,比如find_in_set,也可以直接使用原生SQL语句进行查询,例如: Db::table('think_user') ->where('find_in_set...(1,sids)') ->select(); 为了安全起见,我们可以对字符串查询条件使用参数绑定,例如: Db::table('think_user') ->where('find_in_set...(:id,sids)',['id'=>$id]) ->select(); 其他解决方案: thinkphp5中使用mysql find_in_set语法时,可以使用EXP(表达式查询)来实现,...具体代码如下: $data = Db::table('students')->where('exp','FIND_IN_SET(1,sids)')->select(); 如果用数组条件查询形式的话,那么像下面这么写查询条件即可...","分隔,Find_IN_SET查询的结果要小于like查询的结果。

1.5K20

mysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQLmysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQL

的使用方法 mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET...FIND_IN_SET(str,strlist)函数 str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 查询字段(strlist)中包含(str)的结果,返回结果为...null或记录 下面举例说明 test表中有如下字段及值 下面我想查询area中包含”1″这个参数的记录 SELECT * from test where FIND_IN_SET('1',area)...返回值 下面查询btype字段中包含”15″这个参数的值 SELECT * from test where FIND_IN_SET('15',btype) 返回值 下面查询btype字段中包含”5″这个参数的值...FIND_IN_SET和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果

2.4K20

mysql中FIND_IN_SET的使用方法

mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET...FIND_IN_SET(str,strlist)函数 str 要查询的字符串 strlist 字段名 参数以”,”分隔 如 (1,2,6,8) 查询字段(strlist)中包含(str)的结果,返回结果为...下面查询btype字段中包含”15″这个参数的值 SELECT * from test where FIND_IN_SET('15',btype) 返回值 下面查询btype字段中包含”5″这个参数的值...接下面查询btype字段中包含”20″这个参数的值 SELECT * from test where FIND_IN_SET('20',btype) 当然它的返回值为null,因为字段中没有这个值 FIND_IN_SET...和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果。

19210

MySQL中FIND_IN_SET探险记

1、业务背景 公司的业务需求是需要分权限分等级的获取不同的内容,因为原来的角色,权限,分组表已经建好,但是又要实现不同产品需要不同等级不同分组的人员管理,在做数据库查询时,需要得到某字段中包含某个值的记录...问题总结 ---- 其实我们大家都知道,where 后面跟随各种查询条件,但是从来没有这么写过,即便是应对开发,也很少有人写到。...检索过程中,将满足条件的,即条件为true的结果返回。where能实现类型转换,这一点十分类似JavaScript中的if语句的用法。 4、原来如此 众里寻它千百度,sodesiga,好吧!...FIND_IN_SET(str,strlist) 第一个参数str是要查找的字符串。 第二个参数strlist是要搜索的逗号分隔的字符串列表。...5、FIND_IN_SET和like的区别 like是广泛的模糊匹配,字符串中没有分隔符,Find_IN_SET 是精确匹配,字段值以英文”,”分隔,Find_IN_SET查询的结果要小于like查询的结果

1.9K10

使用tp框架和SQL语句查询数据表中的某字段包含某值

有时我们需要查询某个字段是否包含某值时,通常用like进行模糊查询,但对于一些要求比较准确的查询时(例如:微信公众号的关键字回复匹配查询)就需要用到MySQL的 find_in_set()函数; 以下是用...find_in_set()函数写的sq查询l语句示例: $keyword = '你好'; $sql = "select * from table_name where find_in_set('"....$keyword"',msg_keyword) and msg_active = 1"; 以下是tp框架中使用find_in_set()函数的查询示例: $keyword = '你好'; $where...= array( 'msg_active' = 1, '_string' = "find_in_set('"....以上这篇使用tp框架和SQL语句查询数据表中的某字段包含某值就是小编分享给大家的全部内容了,希望能给大家一个参考。

7.4K31

mysql 函数: find_in_set()、instr()

1. find_in_set() 用于多个字符串子链中查询字符串 ---- find_in_set(str, strlist) str: 要查询的字符串 strlist: 字段名或字符串, 多个子链以英文逗号...`分割 返回值: 假如字符串 str 由 N 个子链组成的字符串列表 strlist 中,则返回值的范围在 1 到 N 之间, 不在 strlist 中则返回 0 以下示例中返回值则为: 3 , 因为字符串...yang 第三个子链中 select find_in_set('yang', 'liang,chen,yang'); 应用场景: 文章表 article 中有个标签字段 tags,一个文章可以有多个标签...标签 id: 1 html 2 css 3 javascript, tags 以 1,2,3 的格式存储标签,那么我们可以使用 find_in_set 查找出 tags 中有 1 的标签 select...* from article where find_in_set(1, `tags`); 2. instr() 用于字符串中查询子字符串 ---- 用于字符串中查询子字符串, 返回子字符串字符串中首次出现的位置

87430
领券