PHP:从MySQL中提取逗号分隔值

时间:2018-06-06 09:15:37

标签: string-concatenation

我的表是:

id | id_fruit |名称

2|1|orange| 3|1|apple| 23|1|banana| 34|1|ananas| 35|3|kiwi|

我想提取id_fruit = 1的所有名称,并以这种方式将它们作为值打印在表单字段中: 橙色,苹果,香蕉,凤梨

我已经尝试过了 select concat_ws(', ', name) from fruits where id_fruit=1但不起作用。 我可以这样做吗?谢谢!

3 个答案:

答案 0 :(得分:0)

只需通过PHP,你就可以这样做! 你可以循环所有这样的名字。

<强> PHP

$in = 0;    
$fruits = "";
    while($row = mysqli_fetch_assoc($exeutedquery)){
if($i == 0){
$fruits += $row['name'];
$i++;
}else{
$fruits += ",".$row['name'];
}
}

AND FOR SQL

SELECT STUFF
(
     (select ',' + name
      from
      fruits
      where 
      ID in (1,2,3)
      FOR XML PATH('')
      ),1,1,''
)

BAM!

答案 1 :(得分:0)

mysql中的User Group_Contact函数

从我的表中选择group_concat(name),其中fruit_id = 1

答案 2 :(得分:0)

我认为您误解了concat_ws()使用 MySQL documentation about this function解释说,你必须立即加入每一个论点 所以你的sql语句没有效果。

正如Raja所说,你可以使用你的后端编程语言(例如php,python或你使用的任何东西)。
您只需select而没有concat_ws,并在后端进行加入。

似乎concat_ws()主要用于连接mysql中相同条目的两个字段,例如同名用户(条目)的名字和姓氏(字段)。