2014-12-02 72 views
0

这是交给我的数据库表的结构。 没有ID,只是名称和价值。MySQL在单个表中获取多行

|option_name | option_value| 
| Item1  | Value | 
| Item2  | Value | 
| Item3  | Value | 
| 2ndItem1 | Value | 
| 2ndItem2 | Value | 
| 2ndItem3 | Value | 
| ThirdItem1 | Value | 
| ThirdItem1 | Value | 
| ThirdItem1 | Value | 

我想有就会把数据像其中的一个声明:

| item1.value | 2ndItem1.value | ThirdItem1.value| 
| item2.value, 2ndItem2, ThirdItem2| 

只有名字了一把,我需要搭配在一起(约7-8 )所以它是没有什么大不了的,如果这是它所需要的

不知道如果一个JOIN是工作的正确工具,或一个循环或..好吧,我会让你给我咨询。

我将在Drupal Migration中使用它,这就是为什么我想将它创建为MYSQL查询的原因。

+0

你能分享一下你试过的吗? – 2014-12-02 19:01:54

+0

@JayBlanchard我不知道从哪里开始。我做了大量的谷歌搜索。 – Luke3butler 2014-12-02 19:03:01

+0

什么是列名? – kkirsche 2014-12-02 19:04:27

回答

0

在事物的SQL方面,它听起来像你应该能够做类似的条款:

SELECT `option_value` FROM table_name WHERE `option_name` in ('item1', 'item2', 'item3', 'item4'); 

在PHP中,应该制定出主要是:

<?php 
$items = array('item1', 'item2', 'item3', 'item4'); 
$itemsStr = implode(',', $users); // returns 'item1','item2','item3','item4' 
$sql = "SELECT `option_value` FROM table_name where `option_name` in ({$itemsStr})"; 

这是非常粗糙,但希望能让你朝着正确的方向前进。我确定我使用的反引号出现在错误的地方

+0

是的,这是一行,但它几乎没用,除非我可以做同样的第二项,然后加入两个。 – Luke3butler 2014-12-02 19:18:10

+0

尝试添加项目列的GROUP BY子句 – 2014-12-03 04:55:11

+0

@JoshiConsultancy名称从字面上看在末尾有数字1 - 6,因此它们不能分组,因为它们都不相同 – Luke3butler 2014-12-03 19:29:13

相关问题