我继承了一个可爱的模式,它具有三个字段:id, field_name, field_value
. 现在您可能会看到这是如何工作的,对于通过 CMS 添加的每个字段,它都作为新行添加,而 id 值不是唯一的。
但是每个字段都不是一个单独的实体,它们实际上应该按 id 分组(它引用了提交的表单的实例)。作为旁注,我很想知道这种模式模式可能被称为什么?
//example db contents
1 name Joe Blogs
1 email joe@example.com
1 programme sport
2 name Dave
2 email dave@example.com
2 programme art
当然,我真的很想使用一个查询来获取按 id 字段分组的选定字段。输出array( id => array( 'field' => 'value' , 'field' => 'value' ) )
等
通常我会做下面的事情,但我想知道是否有一种纯 SQL 方法可以做到这一点,在底部切断循环和处理。
$existing = new stdClass;
$sql = "SELECT 'id','field_name','field_value'
FROM table_name";
$results = $wpdb->get_results( $sql, ARRAY ); //using wordpress btw
foreach ( $results as $k=>$r )
$existing[$r['id']][$k] = $r;