gpt4 book ai didi

mysql - 如何展平 MySQL 中表值函数的结果?

转载 作者:可可西里 更新时间:2023-11-01 07:44:28 25 4
gpt4 key购买 nike

我正在使用 MySQL,我有一个函数可以接受表行中的 col 数据,并返回一个表值函数。例如,像这样的函数:

CREATE FUNCTION [dbo].[wordlongerthan4](
@input text
) returns @result table(
pos int,
word varchar,
)

这将返回长度超过 4char 的单词及其位置。

我想做一个类似下面的sql

从某个表中选择 t.name,wordlongerthan4(t.content) 作为 t;

在 table 上

------------------------------------------------------------------
| id | name | content |
------------------------------------------------------------------
|1 | my1 | i love something and nothing |
|2 | my2 | It is a sunny day today |

得到结果:

|name   | pos | word           |
--------------------------------
|my1 |8 |something |
|my1 |22 |nothing |
|my2 |9 |sunny |
|my2 |20 |today |

我怎么写sql?(函数wordlongerthan4已经有了,我只需要sql!)

最佳答案

你说的是:

  1. 遍历每条记录并提取内容。
  2. 用分隔符(在本例中为空格)分隔内容。
  3. 测量每个部分的长度
  4. 将该部分添加到成功结果数组中,它的长度 < n(4).
  5. 返回零件,以及来自记录它最初的来源。

就像 ajreal 所说的,这是最好在应用层完成的事情,大概在你的 php/java/whatever 内部。

目前没有内置的字符串分解/拆分功能,但这里的这个问题可能很有用:Equivalent of explode() to work with strings in mysql .

关于mysql - 如何展平 MySQL 中表值函数的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29787070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com