将列合并为一个结果

时间:2016-05-01 10:05:35

标签: php mysql

我有一个客户端数据库并使用以下语句返回地址数据库记录:

RaspberryPi-FreeRTOS/
├── build
│   ├── Demo
│   │   ├── Drivers
│   │   │   ├── gpio.d
│   │   │   ├── gpio.o
│   │   │   ├── irq.d
│   │   │   └── irq.o
│   │   ├── main.d
│   │   ├── main.o
│   │   └── startup.o
│   └── FreeRTOS
│       └── Source
│           ├── croutine.d
│           ├── croutine.o
│           ├── list.d
│           ├── list.o
│           ├── portable
│           │   ├── GCC
│           │   │   └── RaspberryPi
│           │   │       ├── port.d
│           │   │       ├── portisr.d
│           │   │       ├── portisr.o
│           │   │       └── port.o
│           │   └── MemMang
│           │       ├── heap_4.d
│           │       └── heap_4.o
│           ├── queue.d
│           ├── queue.o
│           ├── tasks.d
│           └── tasks.o
├── dbuild.config.mk
├── Demo
│   ├── Drivers
│   │   ├── bcm2835_intc.h
│   │   ├── gpio.c
│   │   ├── gpio.h
│   │   ├── irq.c
│   │   └── irq.h
│   ├── FreeRTOSConfig.h
│   ├── main.c
│   └── startup.s
├── FreeRTOS
│   └── Source
│       ├── croutine.c
│       ├── include
│       │   ├── croutine.h
│       │   ├── FreeRTOSConfig.h
│       │   ├── FreeRTOS.h
│       │   ├── list.h
│       │   ├── mpu_wrappers.h
│       │   ├── portable.h
│       │   ├── projdefs.h
│       │   ├── queue.h
│       │   ├── semphr.h
│       │   ├── StackMacros.h
│       │   ├── task.h
│       │   └── timers.h
│       ├── list.c
│       ├── portable
│       │   ├── GCC
│       │   │   └── RaspberryPi
│       │   │       ├── port.c
│       │   │       ├── portisr.c
│       │   │       └── portmacro.h
│       │   └── MemMang
│       │       ├── heap_1.c
│       │       ├── heap_2.c
│       │       ├── heap_3.c
│       │       └── heap_4.c
│       ├── queue.c
│       ├── tasks.c
│       └── timers.c
├── kernel.elf
├── kernel.img
├── kernel.list
├── kernel.map
├── kernel.syms
├── Makefile
├── objects.mk
├── raspberrypi.ld
└── README.md

结果如下:

$query = $this->db_connection->prepare('SELECT company, street, etc. FROM clients ');

为了快速概述,我生成了一个php表,并将Array ( [0] => Array ( [company] => The one and only company [street] => Road to heaven 114 [etc.] => .... [1] => Array ( [company] => Better forever [street] => Wild west 145 [etc.] => .... ) ) 中的组合字符串打印到一个字段中。

为了让它在php中更简单,我想让company, street, etc.完成工作。 PDO准备语句如下所示:

mySQL

但结果包含了我们预期的数字,而不是我的预期。

$query = $this->db_connection->prepare('SELECT company +", "+ street as adress  FROM clients ');

我做错了什么?

2 个答案:

答案 0 :(得分:2)

您不应该使用+来连接不同的字段,因为它将成为一个数学表达式。 +addition的算术运算符,这就是它返回数字的原因。

您正在寻找CONCAT(或者CONCAT_WS)功能,如下所示:

SELECT CONCAT(`company`, ", ", `street`) AS `address` FROM `clients`;

应该返回:

['address'] => 'The one and only company, Road to heaven 114'

答案 1 :(得分:1)

SELECT CONCAT_WS(',','company','street') AS  `address`  FROM  `clients`;

第一个参数是参数其余部分的分隔符