有没有办法将我的查询自动更改为 table 到 运行?
Is there a way to automatically change which table to run my query?
SET @UserID = 21077;
SELECT*FROM DATA.tbl_7 where UserID = @UserID
目前用户数据根据其结尾的数字分开
例如,如果它以 1 结尾,我必须 运行 我对 DATA 的查询。tbl_1
这意味着每次我想 运行 查询每个用户 ID # 我必须更改我的查询行。
例如,如果我想查找 21079
的用户 ID
SET @UserID = 21079;
SELECT*From DATA.tbl_9 where UserID = @UserID
每次都改变“tbl_#”真的很困扰我。
我试过了
SET @UserID = 21079;
SET @UserIDTABLELOOKUP = (SELECT RIGHT(@UserID, 1));
SELECT*FROM DATA.tbl_ (@UserIDTABLELOOKUP) where UserID = @UserID;
但由于显而易见的原因,它不起作用。
是否有一种方法可以根据我设置的 UserID 将哪些数据 table 设置为“Select*From”数据 table?
尝试这样的事情:
SET @UserID = 21079;
SET @UserIDTABLELOOKUP = (SELECT RIGHT(@UserID, 1));
SET @script = CONCAT('SELECT * FROM DATA.tbl_', @UserIDTABLELOOKUP, ' WHERE UserID = ?');
PREPARE stmt FROM @script;
EXECUTE stmt USING @UserID;
DEALLOCATE PREPARE stmt;
SET @UserID = 21077;
SELECT*FROM DATA.tbl_7 where UserID = @UserID
目前用户数据根据其结尾的数字分开 例如,如果它以 1 结尾,我必须 运行 我对 DATA 的查询。tbl_1 这意味着每次我想 运行 查询每个用户 ID # 我必须更改我的查询行。 例如,如果我想查找 21079
的用户 IDSET @UserID = 21079;
SELECT*From DATA.tbl_9 where UserID = @UserID
每次都改变“tbl_#”真的很困扰我。
我试过了
SET @UserID = 21079;
SET @UserIDTABLELOOKUP = (SELECT RIGHT(@UserID, 1));
SELECT*FROM DATA.tbl_ (@UserIDTABLELOOKUP) where UserID = @UserID;
但由于显而易见的原因,它不起作用。 是否有一种方法可以根据我设置的 UserID 将哪些数据 table 设置为“Select*From”数据 table?
尝试这样的事情:
SET @UserID = 21079;
SET @UserIDTABLELOOKUP = (SELECT RIGHT(@UserID, 1));
SET @script = CONCAT('SELECT * FROM DATA.tbl_', @UserIDTABLELOOKUP, ' WHERE UserID = ?');
PREPARE stmt FROM @script;
EXECUTE stmt USING @UserID;
DEALLOCATE PREPARE stmt;