在mysql中为特定列预设结果?

时间:2014-12-28 08:06:21

标签: mysql select

我的应用程序的javascript设置为显示某些mysql数据列,但是如果某个特定列(col3)中没有数据,js将不显示col3的数据,只显示mysql SELECT语句中的其余部分,即col3 =“”,不显示col3。

在某些情况下,无论是否有数据,我都希望js不显示它,但我更喜欢在php中编写逻辑。

目前,如果我将col3从select语句中删除,js会将其显示为“undefined”。

我想知道在mysql SELECT语句中是否有一种方法可以使col3等于空字符串,无论它是否包含数据?

或者我必须将每个col3结果设置为“”...

while ( $row=$result->fetch_assoc() ) { $row['col3']=""; $resultArray[]=$row; }

谢谢。

1 个答案:

答案 0 :(得分:1)

您最好的选择可能是ISNULL或相关功能。


在PHP方面,您可以使用array_merge

  

将一个或多个数组的元素合并在一起,以便将一个值的值附加到前一个数组的末尾。它返回结果数组。

例如:

$defaults = array( 'col3' => '' );
$row = array_merge( $defaults, $row );

如果你知道你的值将是NULL(而不是不存在),那么使用以下函数(未经测试):

function array_merge_isset() {
  $args = func_get_args();
  $result = array();
  foreach( $args as $arr ) {
    if( !is_array( $arr ) ) {
      continue;
    }

    foreach( $arr as $k=>$v ) {
      if( isset( $v ) ) {
        $result[ $k ] = $v;
      }
    }
  }
  return $result;
}