我想问你,是否可以在phpmyadmin中创建一个列,我可以在一列中插入(导入)多个值。例如,我创建了一个名为mytable的表,然后添加了column1(值为1),现在我想添加column2(值为3 5 8)。
当我尝试这样做时,它只显示其中值为3的column2 ...它忽略了5和8。
答案 0 :(得分:3)
从技术上讲,单个数据库字段可以通过将它们存储在以逗号分隔的字符串或JSON编码的字符串中来存储多个值。许多较新版本的MySql也支持在Json Datatype中存储复杂对象,它可以容纳任何东西。但是,执行此操作通常是个坏主意,并且违背了关系数据库的意图。
不是尝试定义单个列来存储不同的数据,而是创建一个新表,该表引用第一个表上的行。以下是可解决您问题的Many-to-One数据关系示例。
table a
-------
id, name, column1
1, 'A', 1
2, 'B', 5
table b
-------
id, a_id, column2
81, 1, 3
82, 1, 5
83, 1, 8
94, 2, 1
95, 2, 2
96, 2, 3
97, 2, 4
98, 2, 5
通过连接这两个表,您可以获得类似的结果集,它更灵活,可排序/可搜索/可过滤。
SELECT a.id, a.name, a.column1, b.column2
FROM a
LEFT JOIN b ON a.id = b.a_id
答案 1 :(得分:0)
" 的答案我能做到吗"是"是" 。但是," 的答案我应该这样做" " 试图找到另一种方式" 。例如,如果我有一个字符串,如:
SELECT
ID
, Start
, [Stop]
, [Type]
FROM
(
SELECT
ID
, MIN(Start) Start
, MAX([Stop]) [Stop]
, [Type]
, [Region]
FROM
(
SELECT
ID
, Start
, [Stop]
, [Type]
, SUM([First]) OVER (PARTITION BY ID ORDER BY [Start]) Region
FROM
(
SELECT
ID
, Start
, [Stop]
, [Type]
,
CASE
WHEN LAG([Type], 1, NULL) OVER (PARTITION BY ID ORDER BY [Start]) = [Type]
THEN 0
ELSE 1
END [First]
FROM YourTable
) Q
) Q2
GROUP BY
ID
, [Type]
, [Region]
) Q3
ORDER BY Region
如果我执行查询将其插入表列字段,它将插入它。如果这是您解决算法的唯一方法,那么我建议您插入使用$mystring = "1 2 3 4 5";
或/
分割的数据值,这样当您检索时,您可以-
他们并获取他们的值,但我不建议这样做。相反,我建议你在尝试这个问题之前尝试找到另一个问题的解决方案。