一个函数:
FIND_IN_SET(str,listStr) 意思是:如果字符串str 在字符串列表listStr中, 则返回值的范围在 1 到 N 之间的数
总之,只要返回的值大于0就代表有在里面
select u.user_name from user u where FIND_IN_SET(u.id,#{listStr})
一个函数:FIND_IN_SET(str,listStr) 意思是:如果字符串str 在字符串列表listStr中, 则返回值的范围在 1 到 N 之间的数总之,只要返回的值大于0就代表有在里面用法:select u.user_name from user u where FIND_IN_SET(u.id,#{listStr})...
select distinct(substring_index(substring_index(a.col,',',b.help_topic_id+1),',',-1))
(select group_concat(
使用mysql时,有可能一个字段代表一个集合,如果将这个集合单独抽成一张表又不值当的,这个时候我们存储时,可以选择用逗号将数据分隔开(只能用英文的逗号),如图所示:
做查询时怎么查呢?假如说给一个数据作为查询条件,判断该字段是否存在,应该怎么查呢?
使用find_in_set()函数轻松实现,将sign字段中含有’唱歌’属性的数据查询出来,而不是用like。
假如说想要查询多个条件,比如说既符合 唱歌 、 又符合 跳舞 的,就可以这样写:
聚合查询count总数
怎么计算总数呢?
原始字段内容的长度 -
userid IN (
SELECT
SUBSTRING_INDEX( SUBSTRING_INDEX( t.recipient_id, ',', t1.help_topic_id + 1 ), ',',- 1 )
t_work_message t
JOIN mysql.help_topic AS t1 ON t1.help_topic
1、问题是这样的,有一个表中的一个字段里面存了多个用户ID,用逗号隔开了,我要把这列的值查出来,每个用户ID分别作为一个条件关联查询。
2、我要查询的账户流水表里面in这些用户ID,如果要直接这样查是不对的,select * from core_account_tx where uid in (select relation_chain from core_invite where uid=632 ),只能查询到第一个用户ID631.
3、如果想把所有的用户ID的流水都查出来,就要把这个多值列里面的
情景描述:要求是查找指定班级对应的课程。表的结构是,班级表class中的一个字段course_ids用于存储course表的id。
我的思路很简单,select查找course表,然后使用in嵌套一个子查询查询出所有的id。
所以第一次的代码是这样的:
SELECT
course cou
WHERE
cou.id IN (
SELECT
c.course_ids
class c
WHERE
c.product_id = '1'
结果确实只查
可以使用 MySQL 内置函数 SUBSTRING_INDEX 和 LENGTH 来实现统计分类字符串使用逗号分隔出现的次数,具体代码如下:
SELECT (LENGTH(分类字符串) - LENGTH(REPLACE(分类字符串, ',', ''))) AS 逗号出现次数 FROM 表名;
其中,分类字符串是指需要统计的字符串,表名是指需要查询的表名。
springboot:redis报错io.lettuce.core.RedisCommandExecutionException: ERR Client sent AUTH, but no passw
73061