MYSQL-连接列名的一部分及其索引号

MYSQL-连接列名的一部分及其索引号,mysql,database-design,concatenation,prepared-statement,concat,Mysql,Database Design,Concatenation,Prepared Statement,Concat,我想在MySQL中的SELECT语句中连接一个列及其索引(数字名称) 例如,共有4列:(第1列、第2列、第3列……第n列)。我希望使用名为'index'的变量并将其附加到单词“Column”的末尾,而不是通过名称引用来更新这些值 e、 g.(列(索引),列(索引)…) 我已经尝试了MySQL文档中的CONCAT()和CONCAT\u WS函数。 例如,如果我将变量index=3的值设置为3,则会导致以下错误: 您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在“(

我想在MySQL中的SELECT语句中连接一个列及其索引(数字名称)

例如,共有4列:(第1列、第2列、第3列……第n列)。我希望使用名为'index'的变量并将其附加到单词“Column”的末尾,而不是通过名称引用来更新这些值

  • e、 g.(列(索引),列(索引)…)
我已经尝试了MySQL文档中的
CONCAT()
CONCAT\u WS
函数。
例如,如果我将变量
index
=3的值设置为3,则会导致以下错误:

您的SQL语法有错误;请查看与您的MariaDB服务器版本对应的手册,以了解在“(“Column”和“3”)附近使用的正确语法。

另一种选择是重新设计数据库及其关系,我希望避免这种情况

我尝试的是列名还是数据库中的字符串

编辑:

$score_update = "UPDATE Users 
 SET CONCAT ('USER_module','$module_chosen_index') ='$module_quiz_score' 
 WHERE USER_firstname = '$username'"; 

$module\u selected\u index
的值可以是(1,2…15),如果我输入了它并且没有使用
CONCAT()
的话,列标题是
USER\u module3

您好,这只是我的意见,但是您可以在代码块中放入任何SQL吗?这样更容易阅读!!!只有使用动态SQL才能做到这一点。您的数据库设计很差,可能应该将列存储在单独的行中。@Chrips代码应该是标准的CONCAT()函数。这样:选择CONCAT('Column','$index'),其中。这是一种假设情况。我将重新评估数据库设计,并按照Gordon Linoff的建议阅读动态SQL。我们可以看看您的查询示例吗?你现在使用的MySQL版本是什么?thanks@tcadidot0在我看来,这个查询本身没有什么帮助,但就是这样。$score\u update=“update Users SET CONCAT('USER\u module','$module\u selected\u index')='$module\u quick\u score',其中USER\u firstname='$username';$module_selected_索引的值可以是(1,2…15),如果我输入了它并且没有使用CONCAT(),则列标题是USER_module3。