查询用逗号分隔的字段,可以用字符串函数FIND_IN_SET();

查询数据库表中某个字段(值分行显示),可以用函数in()。

今天工作中遇到一个问题,就是用FIND_IN_SET()函数解决的。

第一部分:

FIND_IN_SET()函数用法,

查询用逗号分隔的字段,

表A中 go_value字段的值是以逗号分割,

查询 go_value字段中含有3的行:

select * from A where find_in_set('3', go_value);

第二部分:

in()函数用法

查询数据库表中某个字段(值分行显示),

表B中 prov字段的值是分行显示,

查询 湖北省,天津市的gid数目

select count(distinct(gid)) from B where prov in ("湖北省","天津市");

第三部分:

查询在湖北省,天津市的gid,但这些gid不在A表中的id为1的go_value字段里(这种情况,特别是当A表中id为1的go_value中值非常多,或者需要多个go_value值时,非常适用)

select b.gid from (SELECT gid FROM B where prov IN ("湖北省","天津市") ) b left outer join
    (select go_value as gid FROM A WHERE id='1') a on FIND_IN_SET(b.gid,a.gid) where a.gid is null;

第四部分:

补充说明:

只显示左连接查询不到的值,即显示A表存在,但B表不存在的值:

select A.no,A.name,B.score from A left join B on A.no=B.no

where b.score is null;

Mysql查询用逗号分隔的字段-字符串函数FIND_IN_SET(),以及此函数与in()函数的区别的更多相关文章

  1. mysql查询order by 指定字段排序

    当MySQL查询时排序的字段不是数字时而是汉字的时候也可以用when  then 来指定排序. 列如yewu_check表的status 字段不是0,1,2而是汉字待办,已办,退回.可以如下写法: S ...

  2. mysql查询赋值、修改拼接字符串

    sql中修改字符串类型的字段可以这么拼接:update tbName set UserName='abc'+UserName; 但mysql中就不行了,需要这样:update tbName set U ...

  3. mysql:查询以逗号相隔的字符串

    首先我们建立一张带有逗号分隔的字符串. CREATE TABLE test(id int(6) NOT NULL AUTO_INCREMENT,PRIMARY KEY (id),pname VARCH ...

  4. 转!mysql 查询 distinct多个字段 注意!!

    前几天做项目时,mysql写了个sql, distinct  id,col1,col2,...  结果出来了多条同个ID的记录,百度了下..... 下面先来看看例子: table  id name  ...

  5. MySql查询数据令某字段显示固定值

    我们用SQL查询数据时后,基于某些原因不想看到某字段的值,比如密码,我们可以通过创建视图,忽略某一字段的值. 同时我们也可以直接通过SQL语句来让其显示某个固定值: (1)一般查询语句: SELECT ...

  6. Mysql 查询出某列字段 被包含于 条件数据中

    我们通常是使用  某条件  是否包含于 某列中   ,简单点 就是:select * from 表名 where  字段名 like '%条件数据%'; 现在说下   某列 被包含于 条件数据中 接下 ...

  7. MySQL查询指定表的字段名称

    1,查询表中所有字段(横排):SELECT GROUP_CONCAT( COLUMN_NAME SEPARATOR "," ) FROM information_schema.CO ...

  8. mysql查询一个表的字段,添加或修改到另外一个表的数据

    DELIMITER $$ USE `topsale`$$ DROP PROCEDURE IF EXISTS `sale_proce`$$ CREATE DEFINER=`root`@`%` PROCE ...

  9. mysql查询语句集

    1. mysql 查询出某字段的值不为空的语句 1.不为空 select * from table where id <> ""; select * from tabl ...

随机推荐

  1. JDBC报错记录

    用JDBC连接oracle时 有如下问题: 问题一.java.lang.ClassNotFoundException: oracle.jdbc.driver.oracledriver 解决: 可以在环 ...

  2. Python Web学习笔记之GIL机制下的鸡肋多线程

    为什么有人会说 Python 多线程是鸡肋?知乎上有人提出这样一个问题,在我们常识中,多进程.多线程都是通过并发的方式充分利用硬件资源提高程序的运行效率,怎么在 Python 中反而成了鸡肋? 有同学 ...

  3. python的os模块和sys模块

    os模块 os.getcwd()  获取当前的工作目录 os.chdir('绝对路径/相对于当前工作目录的路径')  改变工作目录,相当于shell的cd命令,例如Windows平台下os.chdir ...

  4. 20145307陈俊达《网络对抗》Exp9 Web安全基础实践

    20145307陈俊达<网络对抗>Exp9 Web安全基础实践 基础问题回答 1.SQL注入攻击原理,如何防御? SQL注入攻击就是通过把SQL命令插入到Web表单递交或输入域名或页面请求 ...

  5. Windows中的时间(SYSTEMTIME和FILETIME) (转载)

    转载:http://blog.csdn.net/bokee/article/details/5330791 两种时间系统之间没有本质区别(事实上CRT时间是用Windows时间实现的,当然这是说的VC ...

  6. VC 线程池

    参照:http://www.cnblogs.com/kzloser/archive/2013/03/11/2909221.html 参照:http://blog.csdn.net/pjchen/art ...

  7. C# 判断网络文件是否存在

    #region 判断网络文件是否存在 //bool result = false;//下载结果 //string fileUrl = "http://localhost:7070/FileU ...

  8. MAC BOOK Air 安装metasploit-framework

    Step 1:Xcode命令行开发工具OS X确保它已经安装了Xcode开发工具,在终端执行: xcode-select --install1Step 2:Java SDK安装Java sdk,不能用 ...

  9. 【第三十五章】 metrics(3)- codahale-metrics基本使用

    <!-- metrics --> <dependency> <groupId>io.dropwizard.metrics</groupId> <a ...

  10. 项目梳理6——使用WebApiTestClient为webapi添加测试

    1.使用nuget添加WebApiTestClient的引用 2.xxxxx.WebApi\Areas\HelpPage\Views\Help\Api.cshtml页面末尾添加如下代码: @Html. ...