【问题标题】:Is there a way to automatically change which table to run my query?有没有办法自动更改哪个表来运行我的查询?
【发布时间】:2021-12-16 03:07:19
【问题描述】:
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 将哪个数据表设置为“Select*From”数据表?

【问题讨论】:

    标签: mysql sqlyog


    【解决方案1】:

    试试这样的:

    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;
    

    【讨论】:

      猜你喜欢
      • 2020-01-24
      • 1970-01-01
      • 2012-12-12
      • 2018-06-19
      • 1970-01-01
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 2019-09-28
      相关资源
      最近更新 更多