MySql-将多个列串联/合并为带有硬编码标题的一列

时间:2018-08-21 10:46:22

标签: php mysql

我应该将多列文本迁移到一列(在另一个数据库中)。现在我知道这听起来很复杂,但是我会尽力解释一下。 mysql数据库中有一个名为“ products_desriptions”的表。在该表中,我们有类似以下的列:descriptionDosage,descriptionAction,descriptionIndications等。我想要做的是将这些列合并为一个称为“ productDescription”的列。 这是我所做的一个示例:

SELECT 
   CONCAT_WS('\ntest', action, Indications, staff, dosage) AS productDescription)
FROM 
   products_descriptions
WHERE 
   product_id = 123

因此,列已成功合并。 问题在于,对于每一列,在首页中都有一个标题,该标题没有存储到相应的列中。例如,在“剂量”列中,我们的文本为:“ 2xday,14xweek”,依此类推。在首页上您会看到类似以下内容的内容: “剂量: 2xday,14xweek”,依此类推。 因此,对于每一列,都有这样一个很难理解的标题,我不知道该如何获得。我的意思是我想做的是:合并列,并分别为每一列我想要相应文本的标题。 我正在使用php,所以也许不可能仅通过mysql完成。也许我必须使用php来做,但是有谁知道我应该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用concat功能。

SELECT 
   CONCAT('\ntest', action, '\nIndictions:', Indications,'\nstaff:', staff,'\ndosage:', dosage) AS productDescription
FROM 
   products_descriptions
WHERE 
   product_id = 123