mysql 選擇列 選擇MySQL表的前N列

2021-10-20 22:37:15 字數 1045 閱讀 1238

請先看看bill karwin的

answer.但是,如果您知道如何訂購列名,那麼可能會有乙個使用動態查詢的解決方案.

要從表中選擇所有列名,可以使用如下查詢:

select `column_name`

from `information_schema`.`columns`

where `table_schema`=database()

and `table_name`='yourtablename';

group_concat(concat('`', column_name, '`') order by column_name)

我們可以在一行中返回所有列名,用逗號分隔:

`col1`, `col2`, `col3`, ...

(我還在列的名稱周圍新增了引號,請注意我們必須以某種方式訂購列的列表,否則無法保證返回列名的順序).

然後我們可以使用substring_index剪下返回的字串,以獲得例如前兩個列名:

substring_index(columns, ',', 2)

和我們的最終查詢,連線』select』,上面選擇的列和』from tab1′,並將結果字串插入@sql變數是這樣的:

select

concat(

'select ',

substring_index(

group_concat(concat('`', column_name, '`') order by column_name),

2),' from tab1'

from

information_schema.columns

where

table_schema=database()

and table_name='tab1'

into @sql;

它的價值將是這樣的:

@sql = "select `col1`, `col2` from tab1"

prepare stmt from @sql;

execute stmt;

請參閱小提琴here.

mysql 選擇列 MySQL 選擇所有列( )

示例 詢問select from stack 結果 id username password 1 admin admin 2 stack stack 2 rows in set 0.00 sec 您可以通過執行以下操作從乙個連線的乙個表中選擇所有列 select stack.from stack j...

mysql列型別選擇

整型 data,time char,varchar blob 整型,time運算快,節約空間 char,varchar要考慮字符集的轉化和排序校對集,速度慢 blob無法使用記憶體臨時表 大的字段浪費記憶體,影響速度 null不利於索引,要用特殊的位元組來標註 在磁碟中占用記憶體更大 1 enum列...

mysql 選擇索引 mysql選擇索引

1 盡量為用來搜尋 分類或分組的資料列編制索引,不要為作為輸出顯示的資料列編制索引。最適合有索引的資料列是那些在where子句中資料列,在聯結子句 現的資料列,或者是在group by order by子句 現的資料列。select 後的資料列最好不要用索引。2 綜合考慮各資料列的維度。資料列的維度...