sql >> Databáze >  >> RDS >> Mysql

Poddotaz vrací více než 1 řádek

Nemyslím si, že je možné vrátit pole v rámci jednoho řádku, ale co můžete udělat, je použít group_concat pro spojení hodnot do řetězce, který pak můžete později rozložit:

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']);

Výchozí oddělovač pro group_concat je , což může být při použití explode docela nebezpečné, takže používáme SEPARATOR '$^$' přidat spoustu náhodných postav, které se místo toho pravděpodobně neobjeví.



  1. Hash připojte se k Oracle s příkladem

  2. TRUNC(datum) Funkce v Oracle

  3. Rovná se(=) vs. LIKE pro datový typ data

  4. Náš server nemůže zpracovat více než 20 požadavků za sekundu