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. スタートレックの3Dチェスデータモデル

    2. NodeJSとExpressを使用してMySQL接続プールを作成するにはどうすればよいですか?

    3. mysql-connector-java for mysql 5.6

    4. グループごとに最初/最後のnレコードを取得する