如果表Atable中的a字段内容是1,2,3 的格式(a字段是用,分隔的),要查询该字段是否包含1则可以用find_in_set 例:

id a
1 1,2,3
2 1111,11

SELECT * FROM Atable WHERE find_in_set(1,a)

id a
1 1,2,3
如果表Atable中的a字段内容是1,2,3 的格式(a字段是用,分隔的),要查询该字段是否包含1则可以用find_in_set 例:ida11,2,321111,11SELECT * FROM Atable WHERE find_in_set(1,a)结果| id | a ||–|--|| 1| 1,2,3 |...
前段时间项目中使用到My sql 的FIND_IN_ SET 函数,感觉挺好用的。过一段时间,老大找到我说,这个需要改为IN,哈哈,只能改了,原因会在下面分析到! 弄个测试表来说说两者的区别,测试数据直接在问答区copy一份,能说明问题就行,哈哈,如果侵犯您的版权还请见谅,互联网吗,就需要分享! 测试代码: CREATE TABLE `test` ( `id` int(8) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `list` varchar(255) NOT NULL, PRIMARY KEY (`id`) 这是我最近新接触到的 一个 函数, 我在项目中的使用场景是这样的: 有 一个 应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,parentIds由多个父级id拼接而成由”,”分隔. 组长告知我可以使用该函数,就去进行了了解与使用. FIND_IN_ SET (str,strlist) 假如字符串str在由多个子链组成的字符串列表strlist中,则返回值的范围在1到N之间。 一个 字符串列表就是 一个 由一些被‘,’符号分开的自链组成的字符串。 如果第 一个 参数是 一个 常数字符串,而第二个是type
SELECT COUNT(*) FROM "messages" WHERE NOT (3 = ANY (recipient_ids)) 如果你用的是 node.js 的 pg 包,值在 数组中 可以这样写: var ids = [1,3,4]; MH=> create table test2(id int,while_list text[]); CREATE TABLE MH=> insert into test2 values(1,'{aa,bb,cc}'); INSERT 0 1 MH=> select * from test2; id | while_list ----+------------ spark. sql ("select id, array_field from tmp_v where array_contains(array_field, 'hello')").show(200, false) 参考:https://spark.apache.org/docs/latest/api/ sql /#array
查询嵌套数组 如果 一个 包含 STRUCT 的 ARRAY,则可展平 ARRAY 以查询 STRUCT 的字段。您也可以展平 STRUCT 值的 ARRAY 类型字段。 查询 ARRAY 中的 STRUCT 元素 以下示例将 UNNEST 与 CROSS JOIN 结合使用,以展平 STRUCT 的 ARRAY。 WITH races AS ( SELECT "800M" AS race, [STRUCT("Rudisha" as name, [23.4, 26.3, 26.4, 26.1] a
很多时候我们在设计数据库时有这种情况,比如: 有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 …..11,12,13等等 现在有篇文章他既是 头条,又是热点,还是图文, type中以 1,3,4的格式存储. 那们我们如何用 sql 查找所有type中有4图文标准的文章呢, 这就要我们的find_in_ set 出马的时候到了. 先看my sql 手册中find_in_ set 函数的语法: FIND_IN_ SET (str,strlist) 假如字符串str 在由N 子链组成的字符串列表strlist 中,则返回值的范围在 1 到 N 之间。 一个 字符串列表就是 一个 由一些被
SELECT * FROM s_form sf where json_contains(sf.target_type,CONCAT('"',#{targetType},'"')) 数据库的字段为 需要查询target_type中 包含 ’COUNTY’元素的数据 sql 语句为: SELECT * FROM s_form sf where json_contains(sf.target_ty
SQL 语句支持这样的: select * from 表名 where 列名 in (value1,value2,value3,value4) 但是如果是 一个 List数组,我们无法得知括号里面具体该写多少个值 则可以按照以下方法转换: String _sum=null; for (int i = 0; i < list.Count; i++)
如果你想在 My SQL 数据库中对 一个 字段进行反向查询,即查询该字段不 包含 某个值的记录,可以使用 `NOT FIND_IN_ SET ` 函数。 例如,假设你有 一个 名为 `tags` 的字段,其中 包含 逗号分隔的标签列表,你想要查询不 包含 标签 "my sql " 的记录,你可以这样写 SQL 查询语句: ``` sql SELECT * FROM table_name WHERE NOT FIND_IN_ SET ('my sql ', tags); 这将返回 `table_name` 表中不 包含 标签 "my sql " 的所有记录。注意,`NOT FIND_IN_ SET ` 函数只适用于逗号分隔的列表字段。如果你的字段中 包含 其他分隔符,你需要使用其他方法来解析它们。