Home > Database > Mysql Tutorial > Can Column Names Be Concatenated Dynamically for MySQL Query Execution?

Can Column Names Be Concatenated Dynamically for MySQL Query Execution?

Linda Hamilton
Release: 2024-10-24 04:43:30
Original
1066 people have browsed it

Can Column Names Be Concatenated Dynamically for MySQL Query Execution?

Concatenating Column Names Dynamically for Query Execution in MySQL

Problem Statement:

In MySQL, it is desired to concatenate column names in a query where the first part of the column name is a string and the second part is a number retrieved from another query.

Attempted Solution:

The following SQL statement attempts to achieve the concatenation:

<code class="sql">SELECT CONCAT('column', mytable.mycolumn) FROM table ...</code>
Copy after login

However, this approach does not yield the desired result, and concatenation seems ineffective.

Solution:

Contrary to an earlier belief, it is indeed possible to dynamically construct column names in MySQL using server-side prepared statements. Consider the following approach:

<code class="sql">set @query := (
  select concat(
    "select",
      group_concat(concat("\n  1 as ", column_name) separator ','),
    "\nfrom dual")
  from information_schema.columns
  where table_name = 'columns')
;

prepare s1 from @query
;
execute s1
;
deallocate prepare s1
;</code>
Copy after login

This code dynamically constructs a query string based on the contents of the columns table. The prepare statement is then used to compile the query string, which can subsequently be executed using the execute statement.

The above is the detailed content of Can Column Names Be Concatenated Dynamically for MySQL Query Execution?. For more information, please follow other related articles on the PHP Chinese website!

source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template