Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql中查找集合中查找集合的反函数_Mysql - Fatal编程技术网

mysql中查找集合中查找集合的反函数

mysql中查找集合中查找集合的反函数,mysql,Mysql,mysql中是否有任何函数可以从值集中返回不匹配的值,如 SELECT find_in_set("1","1,2,3,4,5"); //return 1 预计产量为:2,3,4,5 如果有任何函数,请帮助我。据我所知,我认为mysql中除了给定的输入之外,没有任何函数能给出结果 但是,你可以通过这样做得到你想要的 您可以根据自己的要求进行修改 从表_名称中选择*,其中在_集合中找不到_(“1”、“1,2,3,4,5”)据我所知,我认为mysql中除了给定的输入之外,没有任何函数可以给出结果 但

mysql中是否有任何函数可以从值集中返回不匹配的值,如

SELECT find_in_set("1","1,2,3,4,5"); //return 1
预计产量为:2,3,4,5


如果有任何函数,请帮助我。

据我所知,我认为mysql中除了给定的输入之外,没有任何函数能给出结果

但是,你可以通过这样做得到你想要的

您可以根据自己的要求进行修改


从表_名称中选择*,其中在_集合中找不到_(“1”、“1,2,3,4,5”)

据我所知,我认为mysql中除了给定的输入之外,没有任何函数可以给出结果

但是,你可以通过这样做得到你想要的

您可以根据自己的要求进行修改


从表_名称中选择*,其中在_集合中找不到_(“1”、“1,2,3,4,5”)

您可以始终使用
replace()


这将分隔符放在两个列表的开头和结尾,因此
10
不会与
100
混淆。如果这不是问题,则不需要分隔符。

您可以始终使用
replace()


这将分隔符放在两个列表的开头和结尾,因此
10
不会与
100
混淆。如果这不是问题,那么就不需要分隔符。

下面是使用子字符串索引的方法

但请确保在值之前和之后放置“,”,否则它将按不同位置可用的值进行分割,即如果查找12,它也将在值为123的位置进行分割

select replace(concat(',', '1,2,3,4,5', ','), concat(',', '1', ','), '')
如果您对这个解决方案没有意见,那么您应该创建一个函数,例如在_集中查找_NOT_,并传递两个参数并返回最终字符串


我还发布了另一个关于使用准备好的语句的答案。

下面是如何使用子字符串索引来实现这一点

但请确保在值之前和之后放置“,”,否则它将按不同位置可用的值进行分割,即如果查找12,它也将在值为123的位置进行分割

select replace(concat(',', '1,2,3,4,5', ','), concat(',', '1', ','), '')
如果您对这个解决方案没有意见,那么您应该创建一个函数,例如在_集中查找_NOT_,并传递两个参数并返回最终字符串


我还发布了另一个关于使用prepared语句的答案。

使用一系列联合常量,而不是单个值和逗号分隔的字段:-

SELECT CONCAT(SUBSTRING_INDEX("11,22,33,44,55", ',22,', 1), ",",  SUBSTRING_INDEX("11,22,33,44,55", ',22,', -1));
或者,如果您只寻找1个值:-

SELECT a.i
FROM
(
    SELECT 1 i UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5
) a
LEFT OUTER JOIN 
(
    SELECT 1 i
)
ON a.i = b.i
WHERE b.i IS NULL

使用一系列联合常量而不是单个值和逗号分隔的字段:-

SELECT CONCAT(SUBSTRING_INDEX("11,22,33,44,55", ',22,', 1), ",",  SUBSTRING_INDEX("11,22,33,44,55", ',22,', -1));
或者,如果您只寻找1个值:-

SELECT a.i
FROM
(
    SELECT 1 i UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5
) a
LEFT OUTER JOIN 
(
    SELECT 1 i
)
ON a.i = b.i
WHERE b.i IS NULL

你能解释一下确切的要求是什么吗?我的意思是,你为什么想要那个结果。下面的帖子供参考,我问了一个问题,你能解释一下确切的要求是什么吗?我的意思是你为什么想要那个结果。下面的帖子仅供参考,我问了一个问题,我只想使用mysql,这可能吗?我刚刚修改了上面的答案。。。。请。试试这个,我相信这个会有用的@SadikhasanYou是最接近我的答案。是否有可能找到多个值,如
在_集中找不到_(“1,3,2”,“1,2,3,4,5”)为此,您必须这样编写查询。。从表格名称中选择*,其中未在集合中找到集合(“1”、“1,2,3,4,5”)和未在集合中找到集合(“2”、“1,2,3,4,5”);等等……我只想使用mysql,有可能吗?我刚刚修改了上面的答案。。。。请。试试这个,我相信这个会有用的@SadikhasanYou是最接近我的答案。是否有可能找到多个值,如
在_集中找不到_(“1,3,2”,“1,2,3,4,5”)为此,您必须这样编写查询。。从表格名称中选择*,其中未在集合中找到集合(“1”、“1,2,3,4,5”)和未在集合中找到集合(“2”、“1,2,3,4,5”);等等