获取具有相同行ID的列值

时间:2015-11-08 21:02:08

标签: php mysql sql select

我有这个MYSQL表:

+---------------+   
|ID|OID|   mpn  |
+--+---+--------+  
|1 | 1 |  12345 |
|2 | 1 |  54321 |
|3 | 2 |  78912 |
|4 | 2 |  12431 |
|5 | 2 |  78787 |
|6 | 3 |  14565 |
.................

现在我想为数组中的每个[mpn]设置值[OID] 像这样:

$oid1 = array([mpn1], [mpn2])
$oid2 = array([mpn1], [mpn2], [mpn3])...... 

或者只是设法输出引用[mpn]的{​​{1}}。因此,我希望每个[OID]引用MPN,例如。那么,如何从表中选择这些值?

2 个答案:

答案 0 :(得分:2)

此处使用COALESCE()GROUP_CONCAT函数。

GROUP_CONCAT函数将一个组中的字符串连接成一个带有各种选项的字符串。

COALESCE函数按顺序计算参数,并返回最初未计算为NULL的第一个表达式的当前值。

select t.OID,COALESCE( GROUP_CONCAT( t.mpn) , '' ) as mpn
from tableName t 
group by t.OID

如果mpn具有任何空值,则可以使用任何String或null填充此空值。你想做什么。

答案 1 :(得分:1)

我想你想要int i=0; for (Integer locations_arraylist1 : locations_arraylist) { System.out.println("data_array[" + i + "]=" + locations_arraylist1); i++; }

group_concat()

这会创建select oid, group_concat(mpn) as mpns from t group by oid; 列表作为逗号分隔的列表,您可以在php中解析。