我試圖在同一列中插入多個值到一行。例如: :其中ID = 5以在column1中設置值:4,7,9而不是字符串。MYSQL - 如何在同一列和行中設置多個值mysql
回答
改變你表的設計:
ID | Column1
---+----------
5 | 4
5 | 7
5 | 9
然後你可以選擇:
SELECT * FROM table WHERE ID = 5
讓所有的值。
你卡爾索其存儲在SET
表
CREATE TABLE `jj` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`s` set('1','2','3') DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
並插入這樣的:
INSERT INTO `jj` (`id`, `s`)
VALUES
(3, '2'),
(4, '2,3');
樣品
MariaDB [l]> SELECT * FROM jj;
+----+------+
| id | s |
+----+------+
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 4 | 2,3 |
+----+------+
4 rows in set (0.00 sec)
MariaDB [l]> INSERT INTO `jj` (`id`, `s`)
-> VALUES
-> (5, '1,3'),
-> (6, '1,2');
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
MariaDB [l]> SELECT * FROM jj;
+----+------+
| id | s |
+----+------+
| 1 | 2 |
| 2 | 2 |
| 3 | 2 |
| 4 | 2,3 |
| 5 | 1,3 |
| 6 | 1,2 |
+----+------+
6 rows in set (0.00 sec)
MariaDB [l]>
它存儲逗號分隔字符串幾乎總是一個非常糟糕的想法 – RiggsFolly
@RiggsFolly - 將數據存儲在數據庫的核心數據類型中不是一個好主意。 SET被設計來做到這一點。這是來自MAriaDB的SET的定義:**一組。一個可以有零個或多個值的字符串對象,每個值必須從值'value1','value2'列表中選擇,SET列最多可以有64個成員。 SET值在內部表示爲整數。** –
@RiggsFolly - 所以你不會在一個集合中存儲一個字符串,而是存儲一個位掩碼。 Mysql只將字符串轉換爲位字段。在時間戳中存儲字符串「2017-01-01 12:00:00」時也是如此。 –
- 1. 如何獲取mysql中同一行的列值和平均值?
- 2. MYSQL:如果行值相同,如何設置爲相同位置?
- 3. 總和與同一列中的值多行的MySQL中
- 4. MySQL的 - 獲取多個值同一列
- 5. 在一列中插入多個值mysql?
- 6. MYSQL來自同一列中選擇多個值作爲行
- 7. 找到同一列中多個mysql行的整數總和
- 8. 在mysql中同時運行多個查詢(增加一個值)
- 9. MySQL的,在同一查詢中設置一個結果值到另一個值
- 10. 如何在MySQL表中插入同一行的兩列值
- 11. 如何在mysql中設置序列?
- 12. 在mysql Id列中設置默認值?
- 13. MySQL同一列中的多個WHERE?
- 14. MySQL從不同條件的同一列中選擇多個值
- 15. 在MySQL中爲char列設置一個空的默認值?
- 16. mysql如何在SQL運行期間設置列缺省值
- 17. MySQL的:獲取多行的不同的值,以一個單列
- 18. 如何在同一行中選擇多個字段? (MySQL)
- 19. 如何在同一個Mysql表中更新多行
- 20. 一列中有多個值MYSQL
- 21. MySQL - 如果在選擇多行列值
- 22. 設置列在MySQL
- 23. MySQL在一列中返回多個值的行?
- 24. MySQL - 如何將多行合併到多列和一行?
- 25. MySQL中,三個表:UPDATE多行(每一個不同的值)
- 26. 如何設置PHP和MySQL?
- 27. 如何從mysql查詢中多行的同一列中獲取總值?
- 28. mysql:一行中的多個列的平均值,忽略空值
- 29. 如何行與同一列的值在MySQL
- 30. mySQL:合併同一個表中的列,並將值保存在同一行中
如果您打算稍後將它們作爲單獨的值處理,則在單個列中存儲逗號分隔值幾乎總是一個非常糟糕的主意;在數據庫中,哪些表是用於。 (即創建一個有2列和3行5,4 | 5,7 | 5,9等的表格) –
請解釋你正在做什麼。爲什麼地球上存儲4,7,9? – BeNice