sql >> Database >  >> RDS >> Mysql

Subquery die meer dan 1 rij retourneert

Ik denk niet dat het mogelijk is om een ​​array binnen één rij te retourneren, maar wat je wel kunt doen is group_concat gebruiken om de waarden samen te voegen tot een string die je later kunt exploderen:

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

Het standaardscheidingsteken voor group_concat is , wat behoorlijk gevaarlijk kan zijn bij het gebruik van explode, dus gebruiken we SEPARATOR '$^$' om een ​​aantal willekeurige tekens toe te voegen die waarschijnlijk niet zullen verschijnen.



  1. Gegevens uit opgeslagen procedures SELECTEREN

  2. Oracle Database TLS1.2 / SSL-verbinding met JDBC thin en JKS

  3. PHP detecteert poging tot SQL-injectie

  4. Database hoge beschikbaarheid voor Camunda BPM met MySQL of MariaDB Galera Cluster