【发布时间】:2020-11-06 10:36:04
【问题描述】:
我有一个非常愚蠢的客户端应用程序,它想根据参数从 MariaDB 获取信息。 此参数是一个包含空格的字符串,例如“有效参数”。 在 MariaDB 中,每个可能的字符串值都有一个表,表名是空格被下划线替换并添加前缀后的字符串值。所以我可以像这样执行必要的转换:
SELECT CONCAT('prefix_', REPLACE('valid parameter',' ','_'));
现在结果'prefix_valid_parameter'是要查询的表,所以实际上我需要启动
SELECT * from CONCAT('prefix_', REPLACE('valid parameter',' ','_'));
但 MariaDB 的响应是
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '('prefix_', REPLACE('valid parameter',' ','_'))' at line 1
我本来预计表'prefix_valid_parameter'的内容或错误说明“未找到表'prefix_valid_parameter'”。如何使我的SQL SELECT statement 的 table_reference 部分动态化?
【问题讨论】: