我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql中in条件使用字符串方式

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql中in条件使用字符串方式

mysql中in条件使用字符串

场景

当sql使用in作为条件时,使用一个参数满足查询条件,直接传入字符串无法满足条件。

select id,name from user where id in(?)

方法

使用FIND_IN_SET(str,strlist)函数

select id,name from user where FIND_IN_SET(id,#{strlist})
  • str: 条件字段
  • strlist:匹配值集合
select id,name from user where FIND_IN_SET(id,'111,22,333')

mysql查询 in条件参数为带逗号的字符串,查询结果错误

如有以下sql:

SELECT
  (
    SELECT
      GROUP_CONCAT(content)
    FROM
      account_limit_user ur
    WHERE
      ur.id IN (T1.limit_user)
    GROUP BY
      ur.id
  ) AS limit_user
FROM
  account T1
WHERE
  1 = 1

T1.limit_user 为account表中查询出来的值

‘9,8,4’

查询sql正确查询结果应为:

不可推荐 ,推销客户,推销客户

实际结果为:

不可推荐

原因:

在mysql中in里面如果是字符串的话,会自动转化成int类型的,内部使用了如下方法:

CAST('4,3' AS INT)

导致’4,3‘ 变成了4,所以上述查询sql结果只有第一个。

解决方案

FIND_IN_SET('查询的值(如:1)', '使用逗号隔开的字符串集合,如:('1,2,3')')

正确的sql

SELECT
  (
    SELECT
      GROUP_CONCAT(content)
    FROM
      account_limit_user ur
    WHERE
      FIND_IN_SET(ur.id, T1.limit_user) > 0
  ) AS limit_user,
  T1.limit_user limit_userid
FROM
  account T1
WHERE
  1 = 1

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql中in条件使用字符串方式

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用ByteArrayOutputStream写入字符串方式

如何使用ByteArrayOutputStream写入字符串方式,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。使用ByteArrayOutputStream写入
2023-06-22

mysql使用字符串字段判断是否包含某个字符串的方法

目录mysql字符串字段判断是否包含某个字符串1. 使用 LIKE 操作符2. 使用 INSTR() 函数3. 使用 LOCAjavascriptTE() 或 POSITION() 函数4. 使用 FIND_IN_SET() 函数5. 使用
mysql使用字符串字段判断是否包含某个字符串的方法
2024-09-20

怎么在python中使用f方法格式化字符串

怎么在python中使用f方法格式化字符串?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对
2023-06-14

Mybatis传参为逗号分隔的字符串情形进行in条件查询方法

这篇“Mybatis传参为逗号分隔的字符串情形进行in条件查询方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Mybati
2023-06-28

MySQL中怎么使用substring截取字符串

在MySQL中,可以使用SUBSTRING()函数来截取字符串。该函数的基本语法如下:SUBSTRING(str, start, length)其中,str是要截取的字符串,start是开始截取的位置(从1开始计数),length是要截取
MySQL中怎么使用substring截取字符串
2024-05-10

MySQL字符串函数:locate()使用方法详解

MySQL中字符串查找函数locate的使用 定义LOCATE - 查找一个子串在另一个字符串是否存在语法LOCATE(substr,str[,pos])网上各种文章都说有两种语法,其实只不过第三个参数可选,且默认为1而已,何必搞这么复杂。翻看了
MySQL字符串函数:locate()使用方法详解
2017-06-17

如何在Python中使用字符串方法

本篇文章给大家分享的是有关如何在Python中使用字符串方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1、find方法可以在一个较长的字符串中查找子串,他返回子串所在位置的
2023-06-15

Android字符串资源文件format方法使用实例

很多时候我们感性Google在设计Android时遵守了大量MVC架构方式,可以让写公共代码、美工和具体逻辑开发人员独立出来。有关Android 的资源文件values/strings.xml中如何实现格式化字符串呢? 这里Android1
2022-06-06

编程热搜

目录