今天同事在编写MYSQL查询语句时遇到一个很奇怪的问题,使用mysql多表查询,一个表中的某个字段作为另一表的in查询条件,只能读取一条信息,而直接用数字的话可以正常读取

SQL语句如下:

select a.id,a.title,b.idlist,b.aid from table a,table2 b where a.id in(b.idlist) and b.aid=2

用上面的语句可以正常查询但只能查询到一条信息但是用下面的语句的话却可以正常读取

select a.id,a.title,b.idlist,b.aid from table a,table2 b where a.id in(1,2,3,4) and b.aid=2

语法:FIND_IN_SET(str,strlist)

定义:

1. 假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在1到N之间。

2. 一个字符串列表就是一个由一些被‘,'符号分开的自链组成的字符串。

3. 如果第一个参数是一个常数字符串,而第二个是typeSET列,则FIND_IN_SET()函数被优化,使用比特计算。

4. 如果str不在strlist或strlist为空字符串,则返回值为0。

5. 如任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数包含一个逗号(‘,')时将无法正常运行。

strlist:一个由英文逗号“,”链接的字符串,例如:"a,b,c,d",该字符串形式上类似于SET类型的值被逗号给链接起来。

示例:SELECT FIND_IN_SET('b','a,b,c,d'); //返回值为2,即第2个值

好了,先试试能不能用,把原SQL语句修改成

select a.id,a.title,b.idlist,b.aid from table a,table2 b where FIND_IN_SET(a.id,b.idlist) and b.aid=2

好了问题解决了,如果还想知道更多关于FIND_IN_SET()函数的使用方法,可以看一下页面的相关文章

更多相关文章

  1. Android(安卓)-- Android(安卓)JUint 与 Sqlite
  2. android 当系统存在多个Launcher时,如何设置开机自动进入默认的La
  3. Android(安卓)SQLiteDatabase的使用
  4. android 通话记录次数
  5. Android(安卓)SQLiteDatabase的使用
  6. android实现关键字搜索功能
  7. 我的android 第14天 - 使用SQLiteDatabase操作SQLite数据库
  8. Android(安卓)编码规范
  9. android之CheckBox

随机推荐

  1. IFL嵌入式小组技术博客入口导航
  2. Cannot add extension with name 'androi
  3. Android简明开发教程十六:Button 画刷示例
  4. android学习笔记20--------------Relativ
  5. android中wifi原理及流程分析(很经典)
  6. android 输入法弹出 标题栏不被顶出去
  7. Android系统中自带了很多图标,我们的程序
  8. Android内部存储和外部存储的几个概念(内
  9. ListView点击效果设置
  10. ibmdeveloper上的android 的文章