这是交给我的DB表的结构。 没有ID,只是名称和价值。
|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 :(得分: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})";
这非常粗糙,但希望能让你朝着正确的方向前进。我确定我使用反引号是在错误的位置