首頁 > 資料庫 > mysql教程 > MySQL 查詢執行時可以動態連線列名嗎?

MySQL 查詢執行時可以動態連線列名嗎?

Linda Hamilton
發布: 2024-10-24 04:43:30
原創
1088 人瀏覽過

Can Column Names Be Concatenated Dynamically for MySQL Query Execution?

在MySQL 中動態連接列名以執行查詢

問題陳述:

問題陳述:

在MySQL 中,需要在查詢中連接列名,其中列名的第一部分是字串,第二部分是從另一個查詢檢索到的數字。

嘗試的解決方案:
<code class="sql">SELECT CONCAT('column', mytable.mycolumn) FROM table ...</code>
登入後複製

下面的SQL 語句嘗試實現串聯:

但是,這種方法沒有得到預期的結果,並且串聯似乎沒有效果。

解決方案:
<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>
登入後複製

與先前的看法相反,確實可以使用伺服器端準備好的語句在 MySQL 中動態建構列名稱。請考慮以下方法:此程式碼根據清單的內容動態建構查詢字串。然後使用prepare語句編譯查詢字串,隨後可以使用execute語句執行該查詢字串。

以上是MySQL 查詢執行時可以動態連線列名嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板