Mysql
 sql >> база данни >  >> RDS >> Mysql

Подзаявка, връщаща повече от 1 ред

Не мисля, че е възможно да върнете масив в рамките на един ред, но това, което можете да направите, е да използвате group_concat за да обедините стойностите в низ, който след това можете да експлодирате по-късно:

SELECT `customers`.`First Name`, `customers`.`Last Name`,
GROUP_CONCAT(`items`.`Product Name` SEPARATOR '$^$') AS `Products` 
FROM customers 
JOIN items 
ON `customers`.`Customer No` = `items`.`Customer No` 
WHERE `customers`.`Customer No` = 6 
GROUP BY `Customer No`

$products=explode("$^$",$result[0]['products']);

Разделителят по подразбиране за group_concat е , което може да бъде доста опасно при използване на explode, така че използваме SEPARATOR '$^$' за да добавите куп произволни знаци, които е малко вероятно да се появят вместо това.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Практичност на множество бази данни на клиент срещу една база данни

  2. pymysql връзка изберете заявка и извлечете връщане на кортеж, който има байтови литерали като b'25.00', а не низове като '25.00'

  3. Не можа да се зареди исканият клас:com.mysql.jdbc.Driver на JBoss с помощта на HIbernate

  4. @Column(unique=true) изглежда не работи

  5. Как да преминете през таблица с помощта на курсор в MySQL?