版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明
在开发中有时会使用到in查询,并且里面的参数又是数据库中的一个字段比如如下錯误的例子
上面语句查询的表是常用的后台权限表,表数据如下:
上面查询角色拥有的规则名称但是这里传进去的是ag.rules,其实这个字段传進去实际上在数据库是这样查询的(多了个引号):
在mysql中in里面如果是sql 字符串串的话会自动转化成int类型的,内部使用了如下方法:
强转之後’4,3’会变成4所以查询出来的结果只是一条而已。这个问题其实可以使用另外一个mysql的函数来解决:
正确的sql语句如下: