mysql動態選取列 在mysql中選擇動態列

2021-10-19 05:58:33 字數 1477 閱讀 2024

是否可以遍歷這樣的表:

mysql> select * from `stackoverflow`.`results`;

| id | type | criteria_id | result |

| 1 | car | env | 1 |

| 2 | car | gas | |

| 3 | car | age | |

| 4 | bike | env | 1 |

| 5 | bike | gas | |

| 6 | bike | age | 1 |

| 7 | bus | env | 1 |

| 8 | bus | gas | 1 |

| 9 | bus | age | 1 |

9 rows in set (0.00 sec)

進入:| type | env | gas | age |

| car | 1 | | |

| bike | 1 | | 1 |

| bus | 1 | 1 | 1 |

目的是選擇所有criteria_id並將它們用作列.

作為行我喜歡使用所有type.

>所有標準:select distinct(criteria_id)from stackoverflow.results;

>所有型別select distinct(type)from stackoverflow.results;

但是如何將它們組合成檢視或smth.像這樣?

如果你喜歡玩資料.這是乙個生成表的指令碼:

create schema `stackoverflow`;

create table `stackoverflow`.`results` (

`id` bigint(20) not null auto_increment,

`type` varchar(50) not null,

`criteria_id` varchar(5) not null,

`result` bit(1) not null,

primary key (`id`)

engine=innodb;

insert into `stackoverflow`.`results`

`id`,

`type`,

`criteria_id`,

`result`

values

( 1, "car", env, true ),

( 2, "car", gas, false ),

( 3, "car", age, false ),

( 4, "bike", env, true ),

( 5, "bike", gas, false ),

( 6, "bike", age, true ),

( 7, "bus", env, true ),

( 8, "bus", gas, true ),

( 9, "bus", age, true );

mysql 列的選取原則

列選擇原則 1 字段型別優先順序 整型 date,整型 浮點型,time enum,char varchar blob 列的特點分析 整型 定長,沒有國家 地區之分,沒有字符集的差異 time定長,運算快,節省空間.考慮時區,寫sql時不方便 where 2005 10 12 enum 能起來約束值...

mysql選取某列 MySQL 請選擇合適的列!

字串型別 1 varchar 1 儲存可變長字串。理解 比固定長度占用更少的儲存空間,因為它只占用自己需要的空間。例外情況 使用row format fixed建立的myisam表,它為每行使用固定長度的空間,可能會造成浪費。2 儲存長度資訊。如果定義的列小於或等於255,則使用1個位元組儲存長度值...

mysql 按兩列排序嗎 按兩列排序MySQL表

這可能有助於某人正在尋找通過兩列排序表的方法,但是以相似的方式。這意味著使用聚合排序功能組合兩種排序。例如,在使用全文搜尋檢索文章以及文章發布日期時,它非常有用。這只是乙個例子,但是如果你理解了這個想法,你可以找到很多要使用的聚合函式。您甚至可以對列進行加權,使其優先於一秒鐘。我的功能從兩種型別中都...