tp5 如何查询mysql中json数据

数据库中保存有json数据如下:

        例:表 so_custom

        id           custom_id                   content

        1            1                          {"buy":"2","sell":"3","stock":"1,2,3"}       
        2            4                          {"buy":"2","sell":"3","stock":"1,4"}  
        3            6                          {"buy":"2","sell":"3","stock":"1,22,3"}  
        4            7                          {"buy":"2","sell":"3","stock":"1"}  



        现在只知道 stock中有3,如何通过这个条件去找出相应的custom_id,tp5的查询写法是什么?
        这种写法($this->model->json(['content'])->where('content->stock',3)->select())只能在stock =3 的数据,无法找出 stock 包含 1,2,3 的数据,
0

1个回答

使用like进行查询,你这属于模糊匹配 使用等于肯定查询不到数据

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
TP5 实现查询数据库返回json数据(返回json数据函数实例)
TP5 实现查询数据库返回json数据(返回json数据函数实例) 一、把格式化json函数写到公共文件common.php中,common.php文件路径在:application/common.php 所有文件文件都可以引用 function json($code,$msg="",$count,$data=array()){ $result=array(
Tp5 json数据查询条件
查询intval()
tp5 之mysql关联查询
个人博客:www.liusongs.com
MySQL 查询常用函数--tp5查询方法
前言:在给学长做南阳市行贿黑名单系统时,自己又对数据查询多了些了解。现在想记录下来,日后学习用和帮助大家。我使用的是tp5,所以下面的代码中包含了tp5的一些语法和函数。$fin=Db::table('ny_c_cx')->alias('a')->field(['a.id','group_concat(a.id)'=>'chaxun_id','count(a.adminId)'=...
tp5 mysql group记录集查一次得出查询某个字段值多个不同结果(去重复)(同时得出is_finish=1和is_finish=2的总记录数)
例子:要得出已经得交试卷(is_finish=0)和未提交试卷(is_finish=1)的总数 //已做试卷总数量 试卷(已提交) $user_test_total = Db::name('test_paper_user') ->where('user_id',$uid) ->where('is_finish','in','0,...
mysql使用like模糊搜索json数据
工作中存储到mysql的数据是json类型的,在列表使用like模糊搜索时搜索不到,使用下面的方法可解决: 1. $name = str_replace('"','',json_encode($name)); 2. $name = str_replace("\\",'_',$name); 原因是: 1、第一步是去除json_encode转义的后字符串带的双引号 2、把转义后...
tp5中mysql使用REGEXP 正则匹配
tp5.0中没有regexp,但是可以用exp表达式 sql正则表达式语句:select * fron 表名称 where name regexp 'ok$'; $result = model('表名称') ->where('idcard','exp','REGEXP \''."^{$idcardStart}\.{4}{$idcardEnd}$".'\...
tp5的whereOr查询使用
public function loginCheck($data=null){ $result = model('admin')->where(function ($query) use ($data) { $query->where('phone',$data['login_name'])->where('passwd',$data['passwd']); })-
TP5 返还接口数据json
一:利用ajax请求数据: 可以在common.php 公共文件写一个自定义show方法 用来返回json数据; //返还的json数据 function show($status,$msg,$data=[]){ $result = [ 'status' => $status, 'msg' => $msg, 'data' =...
tp5框架mysql查询语句总结
多个查询where查询语句: where("name|title", "like", "%hello") 多个字段同一个查询条件; where("name", ['=' , 'hello'], ['=', 'world'], ['=', 'hi'], 'or') 同一个字段多个查询条件 to be continue..... ...
mysql 查询json类型数据
如果 t1表里有一个extra字段,字段是text类型,数据为json格式  {"value":"XMjgxIqqqqqqqqqq"}  如何获取json里面value对于的值呢? JSON_EXTRACT(t1.extra,'$.value') 得到 "XMjgxIqqqqqqqqqq" 原始sql和原始结果
TP5 查询=空(mysql数据库数据保存两种空值 ='' or =null)
mysql数据库数据保存两种空值 ='' or =null 如何取到两种空值的记录 ->where("url is null or url=''") 例子: $where = new Where; $where['pid'] = 494;//应用中心 栏目ID $where['deleted'] = 0;//状态 0正常 1回收站 $where['hide'...
TP5根据条件IN里面的查询顺序进行排名
使用TP的Expression类 解决方法: 1.数组ID array(5) {[0]=>int(196) [1]=>int(197) [2]=>int(198) [3]=>int(200) [4]=>int(201)} 2.返回由数组元素组合成的字符串(逗号分隔) $str = implode(',',数组ID); ...
mysql按日期分组tp5.0和原生写法
原生 SELECT  DATE_FORMAT(create_time,'%Y-%m-%d') as date,AVG(num) as avg,MAX(num) as max FROM `on_line` WHERE server_id=2000 AND create_time>'2018-10-26' AND create_time<'2018-10-30' GROUP BY DAT...
TP5查询字段值为NULL的数据
TP5查询字段值为NULL的数据 1.查询字段值为NULL 原生SQL语句为: 2.查询字段值不为NULL的数据 原生SQL语句为:
mysql 查询子表,并求和(tp5)
个人博客:www.liusongs.com 原文链接:mysql 查询子表,并求和(tp5)
mysql 查询JSON类型数据
获取json字段内容 mysql> SELECT c, JSON_EXTRACT(c, "$.id"), g > FROM jemp > WHERE JSON_EXTRACT(c, "$.id") > 1 > ORDER BY JSON_EXTRACT(c, "$.name"); +-------------------------------+-----------+
thinkphp5 读取mysql中文数据乱码
thinkphp5 读取mysql中文数据乱码 乱码原因 Tp5默认的PDO连接mysql方式在某种特殊环境下没有默认utf8 解决方式 写在数据库datebse.php配置里增加连接配置信息 ‘params’ => [ \PDO::MYSQL_ATTR_INIT_COMMAND => ‘SET NAMES utf8’, \PDO::MYSQL_ATTR_USE_BUFFERED_QU...
tp5+Mongodb与Mysql数据库的混合查询
前言 MongoDB 海量数据查询快速 不需要建立数据模型 适合做日志数据库 或者中间数据库 从MySQL数据库中读取存放一些需要读的业务数据 MongoDB没有适合多表事务功能,写操作也没有多好的确定机制,不适合当做业务数据的数据库 MySQl 存放业务数据 事务的读写 实现过程 配置database return [ // 数据库类型
TP5 => 使用 count() 获取查询结果的数量
thinkphp5.0 我们使用tp5 查询数据的时候,想要获取结果的条数,我们可以使用 count() 来获取, 例如:我们从 page 表中查询所有数据,然后使用 count() 获取查询结果的条数,使用 assign() 返回给前端; $list = Db::table('page')->select(); $list_length = count($list); $this...
tp5如何调用数据库的存储过程求解。。。
tp5应该如何写
TP5查询去除重复的方法及注意事项和用法(distinct,group与having)
1.group('字段名') 2.distinct(true) group('字段名'):根据设置的分组的字段名去除重复 distinct(true):一般写在field()前,根据field()定义的字段名去除重复 区别:group('字段名')不能和聚合查询如:count();sum();等连用,而distinct(true)可以,但并没有什么卵用,聚合函数计算的结果并不是根据去除...
tp5_链式查询时,将时间戳直接转换成时间格式
$field = *.'FROM_UNIXTIME(u.create_time,"%Y年%m月%d日 %H点%m分%s秒") as create_time'.*; 拓展完善: FROM_UNIXTIME(unix_timestamp,format) 参数: unix_timestamp:时间戳 可以用数据库里的存储时间数据的字段 参数format  要转化的格式  比如“”%Y-%m-%...
tp5使用原生sql语句查询
Db::query(“select * from think_user where status=1”)
ThinkPHP5&5.1下读取json文件数据
json文件有时候可以看做是一个小型的数据库,尤其是一些基本不会变的信息,放到json文件当中利于我们保管,当读取数据时我们就需要对json文件进行操作,得到我们想要的数据。 在根据省市县多级联动时,我们通过前台的操作,向后台发出了一个ajax请求,传递的参数是三个code,也就是省市县的代码,而我们希望通过code得到name,也就是获取到省市县的名称,这时候我们可以这样操作。 首先看一下j...
【TP5 :数据库:查询构造器:链式操作】视图查询
视图查询 视图查询可以实现不依赖数据库视图的多表查询,并不需要数据库支持视图,例如: Db::view('User','id,name') ->view('Profile','truename,phone,email','Profile.user_id=User.id') ->view('Score','score','Score.user_id=Profile...
关于TP5查询数组的问题
$firm_role_menu = $frst['firm_role_menu'];//27,28,31,33,35类似这样的字符串; $arr = explode(',',$firm_role_menu);//这是一个数组; $str = implode(',',$arr); $inStr = "'".str_replace(",","','",$str)."'"; dump($inStr);/
【TP5 :数据库】事件
查询事件 查询事件(V5.0.4+) 从5.0.4+版本开始,增加了数据库的CURD操作事件支持,包括: 事件描述before_selectselect查询前回调before_findfind查询前回调after_insertinsert操作成功后回调after_updateupdate操作成功后回调after_deletedelete操作成功后回调 查询事件仅支持find、select、...
thinkphp5模板输出json数据
使用model默认返回的是json字符串,如果想要在模板中使用数据,就需要在模板的控制器中转换一下了参考代码如下: $opts = OptsModel::getOpts(); $opts = json_decode($opts->getContent(),true); $this->assign('opts', $opts); ...
【TP5 :数据库:查询构造器:链式操作】原生查询
Db类支持原生SQL查询操作,主要两个方法: query方法 用于执行SQL查询操作,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法)。 Db::query("select * from think_user where status=1"); 如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法...
【MySQL】处理JSON数据
业务需要灵活的数据结构 通常,我们在使用MySQL这类关系型数据库时,会遵守一些准则来设计表结构。 但实际应用场景与“严格的单一准则”是有差距的。因为实际情况中需要考虑多方面的平衡作出妥协。 如,我们刚学完数据库原理时,往往会倾向于努力设计满足BC范式的表结构,或者至少是满足第三范式的表结构。 但当我们在解决实际工程问题时,可能会作出一些无法满足这些范式要求的表结构设计决议。这些设计在...
ThinkPHP查询数据的时候,自动把字段名的大写切换成小写的问题!
前几天心血来潮把以前写的一个项目翻出来看看,可是没有数据库,只有根据代码提示不断的重建数据库。在这个过程中,发现自己在数据库里定义为大写的字段,在查询和判断的时候,报错说怎么也找不到,后来经过打印数据的时候才发现,查询以后,ThinkPHP自动把我定义为大写的字段转换为小写了。 本来以为这是ThinkPHP框架一个不可改的问,结果今天无聊在网上查询,发现早有大神发现并解决了这个问题。以上问题出现
thinkphp5 锁表操作
这个问题坑了很久.中间经历了很多艰难的过程,,研究了半天的源码,唉,不多说了 主要是设置options   的PDO配置,因为原来的框架本身设置,导致锁表报错. $options = Config::get('database'); $options['params'] = [ \PDO::ATTR_CASE => \PDO::CASE_NATURAL, \PDO::A
TP5按json方式输出通信数据
$code 状态码 $message 提示信息 $data 数据 function getjson($code, $message = '', $data = array()) { if (!is_numeric($code)) { return ''; } $result = array( 'code' => $code, ...
thinkPHP调用枚举类型
thinkPHP调用枚举类型,里面根据参数不同返回值不同,初步只封装了input(radio、check)、td、select等。
【TP5 :数据库:查询构造器:链式操作】limit,page
limit limit方法是模型类的连贯操作方法,主要用于指定查询和操作的数量 限制结果数量 示例: //获取满足要求的10个用户 Db::table('think_user') ->where('status=1') ->field('id,name') ->limit(10) ->select(); 可用于写操作
TP5中的getField()方法变化,tp5获取单个字段值
想直接获取单个字段值,弄了半天,tp5的getField()方法变了,具体如下: TP5中的getField():拆分为value和column了 例子: ••• where("id = 1")->value("title");       输出:(string) title  ••• where("id = 1")->column("title");     输出:(arr
TP里的case when用法。可以代替if判断
public function detail_jump(Request $request) { $name = $request->param('name'); $video_id = $request->param('id'); $sql = "(select *,(case when picture_type = 'remote' then picture_url w
tp5的数据查询,分页及数据遍历
控制器层 public function oldlist() { // 体质监测列表 $count = Db::name('old_people_answer')->group('patient_name')->count(); $result = Db::name('old_people_answer') ...
tp5查询未绑定的人员 NOT IN
/** * @authName 查看/绑定人员信息 * @authStatus 1 * @author suohao * @createTime 2018-01-21 16:52:08 * @qqNumber 1004634740 */ public function getPersonData() { ...