mysqlunnest_MYSQL中的UNNEST函数,如POSTGRESQL

更新时间:2023-06-19 07:59:10 阅读: 评论:0

mysqlunnest_MYSQL中的UNNEST函数,如POSTGRESQL 简短的回答
对的,这是可能的.从技术⾓度来看,您可以通过⼀个查询实现这⼀⽬标.但问题是 – 最有可能的是,你试图将⼀些逻辑从应⽤程序传递到数据存储.数据存储旨在存储数据,⽽不是表⽰/格式化数据,或者甚⾄更多地应⽤⼀些逻辑.
是的,MySQL没有数组数据类型,但在⼤多数情况下它不会成为问题,可以创建体系结构以适应这些限制.⽆论如何,即使你以某种⽅式实现它(⽐如 – 见下⽂) – 你也⽆法在以后使⽤该数据正常⼯作,因为它只是结果集.当然,你可以存储它 – ⽐如说,稍后索引,但它⼜是⼀个应⽤程序的任务 – 所以要创建那个导⼊.
另外,请确保它不是Jaywalker案例,因此不要存储分隔符分隔值以及稍后尝试提取它们.
什么口红牌子最好>扔沙包答案很长
从技术⾓度来看,您可以使⽤两个⾏集中的Cartesian product个来完成.然后使⽤⼀个众所周知的公式:
N = d1x101 + d2x102 + …
因此,您将能够创建⼀个“全数字”表,然后迭代它.该迭代与MySQL string functions⼀起可能会引导您进⾏如下操作:
SELECT
data
FROM (
开学报到SELECT
@next:=LOCATE(@parator,@arch, @current+1) AS next,
SUBSTR(SUBSTR(@arch, @current, @next-@current), @length+1) AS data,
@next:=IF(@next, @next, NULL) AS marker,
@current:=@next AS current
甲供材
FROM
(SELECT 0 as i UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) as n1
小孩多动症CROSS JOIN
(SELECT 0 as i UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) as n2
CROSS JOIN
(SELECT
-- t your parator here:
@parator := ',',
-- t your string here:
@data := '1,25,42,71',
-- and do not touch here:鲍晓
@current := 1,
@arch := CONCAT(@parator, @data, @parator),
@length := CHAR_LENGTH(@parator)) AS init
) AS joins蠢人自己骗自己
画画图片大全简单漂亮WHERE
marker IS NOT NULL
相应的⼩提琴将是here.
你还应该注意:这不是⼀个功能.并且使⽤函数(我的意思是,⽤CREATE FUNCTION声明的⽤户定义),因为MySQL中的函数不能按定义返回结果集,所以不可能得到结果⾏集.但是,并不是说⽤MySQL执⾏请求的转换是完全不可能的.
但请记住:如果你能做某事,那并不意味着你应该这样做.

本文发布于:2023-06-19 07:59:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/989500.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   可能   结果   定义   创建   应该   程序   牌子
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图