MySQL查询列名子字符串

MySQL查询列名子字符串,mysql,sql,select,substring,substr,Mysql,Sql,Select,Substring,Substr,是否可以将back ticks`与substr()函数结合使用?我有带连字符“-”的列名,需要使用反勾号进行查询,但似乎我无法执行以下操作: SELECT substr(`abc-def-ghi`,1,5) FROM tableName 其中,目标是从以abc-d开头的列中选择所有行。不幸的是,更改/删除连字符不是一个选项。您不能用简单的SQL语句来做您想做的事情。使用abc def ghi时,得到的是列的值,而不是名称 SQLSELECT语句返回一组固定的列和一组固定的名称,您不能以这种

是否可以将back ticks`与substr()函数结合使用?我有带连字符“-”的列名,需要使用反勾号进行查询,但似乎我无法执行以下操作:

  SELECT substr(`abc-def-ghi`,1,5) FROM tableName

其中,目标是从以abc-d开头的列中选择所有行。不幸的是,更改/删除连字符不是一个选项。

您不能用简单的SQL语句来做您想做的事情。使用
abc def ghi
时,得到的是列的值,而不是名称

SQL
SELECT
语句返回一组固定的列和一组固定的名称,您不能以这种方式选择名称


如果要执行类似的操作,则需要使用动态SQL(
prepare
exec
)。但是,我怀疑您的数据模型可能很差。您可能想问另一个问题,显示表布局,并询问这是否是您尝试执行的操作的合理数据结构。

您无法使用简单的SQL语句执行所需的操作。使用
abc def ghi
时,得到的是列的值,而不是名称

SQL
SELECT
语句返回一组固定的列和一组固定的名称,您不能以这种方式选择名称


如果要执行类似的操作,则需要使用动态SQL(
prepare
exec
)。但是,我怀疑您的数据模型可能很差。您可能想问另一个问题,显示表布局,并询问这是否是您尝试执行的操作的合理数据结构。

谢谢您的回答。我想我总得让“更改列名”成为一个选项。我的模型确实不是最优的,因为我知道查询行比查询列更好,但是我受到列数限制的限制;因此,必须将较高维度设置为行(上限),将其他维度设置为列。感谢您的回答。我想我总得让“更改列名”成为一个选项。我的模型确实不是最优的,因为我知道查询行比查询列更好,但是我受到列数限制的限制;因此,必须将较高维度设置为行(上限),将其他维度设置为列。