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

mySQL - aktualizujte více sloupců pomocí výběru, který vrací více řádků

Update Table1
    Cross Join  (
                Select Min( Case When Z1.Num = 1 Then Z1.postcode End ) As PostCode1
                    , Min( Case When Z1.Num = 2 Then Z1.postcode End ) As PostCode2
                    , Min( Case When Z1.Num = 3 Then Z1.postcode End ) As PostCode3
                From    (
                        Select postcode 
                            , @num := @num + 1 As Num
                        From postcodeTable 
                        Where postcode = 'KY6 IDA'
                        Order By <equation to calculate distance> ASC 
                        Limit 3
                        ) As Z1
                ) As Z
Set nearestPostCode1 = Z.PostCode1
    , nearestPostCode2 = Z.PostCode2
    , nearestPostCode3 = Z.PostCode3
Where Table1.postcode =  'KY6 IDA'


  1. ProgrammingError:Objekty SQLite vytvořené ve vláknu lze použít pouze ve stejném vláknu

  2. Proč se chování Mysql Group By a Oracle Group podle chování liší

  3. Proč uzavíráme výsledek v Mysqli

  4. Zend_Db seřaďte podle pole Hodnota