Search code examples
mysqlsqlselectsubstringsubstr

MySQL query column name substring


Is it possible to combine the use of back ticks ` with the substr() function? I have column names with hyphens '-' which require the use of backticks to query but seems like I cannot do something like:

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

Where the aim is to select all rows from columns starting with abc-d. Unfortunately changing/removing the hyphens is not an option.


Solution

  • You cannot do what you want with a simple SQL statement. When you use abc-def-ghi, you get the value of the column, not the name.

    A SQL SELECT statement returns a fixed set of columns with a fixed set of names, You cannot select names that way.

    If you want to do something like this, then you would need to use dynamic SQL (prepare and exec). However, I suspect that you might have a poor data model. You might want to ask another question, show the table layout, and ask if that is a reasonable data structure for what you are trying to do.