gpt4 book ai didi

mysql - 是否有可能在 SQL 查询中获取第 n 列之后的 m 列?

转载 作者:行者123 更新时间:2023-11-29 11:50:42 25 4
gpt4 key购买 nike

例如,我想要一个从第 n 列之后的 4 列获取数据的查询,该列将成为我的代码中的变量,因此当我执行函数 GetData(n, rowNum) 时,查询将返回第 n 个,指定行中的 n+1, ..., n+4 列。

这可行吗?

具体化我的情况的图片:

image

session 是两个用户(或更多)之间的交互,我想发送n1(或n2,...)并在发送查询后接收n1+1,n1+2,...。

那么有没有更好的方法呢?谢谢。

额外编辑:user1 和 user2 的数据不在数据库中的其他位置,所有数据都特定于 session 。据我所知,我必须从 session 表中获取它。

额外的额外编辑:我只需要一个函数,可以发送 n1 (一个已知的数字,我们称之为 1),并接收后面的 2 列。 2和1是常数。然后我会自己修改以满足我的需要。我没想到这么复杂。

最佳答案

您可以使用此存储过程:

CREATE PROCEDURE `GetData`(IN `n` INT, IN `tbl` VARCHAR(100))
LANGUAGE SQL
NOT DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
SELECT CONCAT('SELECT ', GROUP_CONCAT(c.COLUMN_NAME), ' FROM ',tbl,';')
INTO @query
FROM INFORMATION_SCHEMA.COLUMNS c
WHERE c.TABLE_NAME = tbl
AND c.ORDINAL_POSITION IN(n,n+1,n+2,n+3)
ORDER BY c.ORDINAL_POSITION ;

PREPARE stmt FROM @query;

EXECUTE stmt;
END

查询中的使用示例:

CALL `GetData`('4', 'table_name');

这就是 table_name 表的 4th,5th,6th,7th 列。

关于mysql - 是否有可能在 SQL 查询中获取第 n 列之后的 m 列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116397/

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