mysql中find_in_set函数很有意思,它的功能是查找以英文逗号隔开的值,我们可以将数据存储类似为1,2,3,4格式。今天我们就来看看在thinkphp中怎样正确地使用find_in_set函数进行数据查询。

在ThinkPHP中, 我们可以使用数组的形式组合查询条件,对于组装find_in_set时,可以有如下写法:

$map['_string']="FIND_IN_SET(1,tid)";//tid为表字段

还可以组合多个find_in_set查询一起使用:

$map['_string'] = "FIND_IN_SET(1,tid) OR FIND_IN_SET(2,tid) OR FIND_IN_SET(3,tid) OR FIND_IN_SET(4,tid)";

最后生成的sql语句如下所示:

SELECT `id`,`title`,`enname`,`futitle`,`picture`,`content` FROM `tp_content` WHERE `is_recover` = 0 AND `cityid` = 2
AND ( `cate_id` = '1' OR `cate_pid` = '1' ) AND ( FIND_IN_SET(1,tid) OR FIND_IN_SET(2,tid) OR FIND_IN_SET(3,tid) OR FIND_IN_SET(4,tid) )
ORDER BY add_time desc,id desc LIMIT 0,10

使用 FIND_IN_SET 可以省下用php切成数组然后在进行匹配的麻烦

mysql 使用 FIND_IN_SET 来查询数据的更多相关文章

  1. 4、MySQL 申明变量给查询数据编号

    摘自: https://www.cnblogs.com/qixuejia/archive/2010/12/21/1913203.html https://blog.csdn.net/arbben/ar ...

  2. 【MySQL】SELECT语句 - 查询数据

    第4章 检索数据 文章目录 第4章 检索数据 1.SELECT语句 2.检索单个列 3.检索多个列 4.检索所有列 5.检索不同的行 6.限制结果 7.使用完全限定的表名 8.小结 简单记录 - My ...

  3. mysql 根据日期进行查询数据,没有数据也要显示空

    写这篇博客主要是记录自己在对订单进行按日期查询时使用的一种查询的方法,这里的orders是订单表,你也可以改成别的什么表对于最终数据不会造成影响,除非你那个表的数据只有几条那样就会出现查不到日期的情况 ...

  4. PHP操作mysql数据库:[2]查询数据听语音

    本文主要详细讲解如何使用php语言,对mysql数据库进行查询.添加.删除.更新等操作. 工具/原料   Macromedia Dreamweaver 8 mysql数据库,php语言 一.前言   ...

  5. MySQL笔记(二)——查询数据

    数据库管理系统的一个最重要的功能就是数据查询,数据查询不应只是简单的查询数据库中存储的数据,还应该是根据需要对数据进行筛选,以及确定数据以什么样的格式显示.本篇笔记主要介绍单表查询,子查询,连接查询. ...

  6. php使用mysql和mysqli连接查询数据

    mysql: <?php $code = $_POST['code']; $status = ""; $success = ""; $scookies = ...

  7. MySQL关于根据日期查询数据的sql语句

    查询在某段日期之间的数据: select * from 数据表  where 时间字段名 BETWEEN '2016-02-01' AND '2016-02-05' 查询往前3个月的数据: selec ...

  8. mysql 从一个表查询数据插入另一个表或当前表

    mysql insert into 表明(uid,lng,lat) SELECT uuid,lng,lat FROM 表明

  9. mysql 根据日期时间查询数据

    mysql> select * from table1; +----------+------------+-----+---------------------+ | name_new | t ...

随机推荐

  1. bind 事件名称 命名空间

    1.通过在事件名称后面添加以点号分隔的后缀来为事件名称指派命名空间 $("#button").bind("click.editMode",function(){ ...

  2. HTML表单(form)的“enctype”属性

    Form元素的语法中,EncType表明提交数据的格式 属性值: application/x-www-form-urlencoded:在发送前编码所有字符(默认) multipart/form-dat ...

  3. vue打包(npm run build)时错误记录

    vue项目打包时,报错如下: 问题分析:semver.js报错,版本不正确,解决办法,打包时忽略版本检查 解决办法:

  4. css滤镜模糊效果filter和backdrop-filter

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. iDempiere 使用指南 使用MRP进行生产及采购排程

    Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...

  6. learn OpenStack by picture

  7. Linux漏洞分析入门笔记-CVE-2015-0235

    Ubuntu 12.04 32位 ida 7.0 0x00:漏洞描述 1.glibc的__nss_hostname_digits_dots存在缓冲区溢出漏洞,导致使用gethostbyname系列函数 ...

  8. greenplum导数据

    Greenplum and Hadoop HDFS integration Step 1: Install Java on greenplum Step 2: Set JAVA and HADOOP ...

  9. solidity语言12

    View Functions 函数声明为视图,将无权修改状态 pragma solidity ^0.4.16; contract C { function f(uint a, uint b) publ ...

  10. matlab中换行

    若在命令窗口中,如果一条语句已经写完,需要换行,可以用"Shift+Enter", 如果一条语句没写完就想换行,可以使用"...+Enter".