MySQL ANY

PHPportalen Forum Index » Tips och Trix
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
LimpanDSS



Medlem i: 2427 dagar
Från: Stockholm
Status: Offline



#731172
Inlägg Skrivet: 2013-04-11 22:11      Ämne: MySQL ANY Citera

Tjena! Är det ingen annan som tycker att keywordet "ANY" är väldigt underanvänt.

Det finns så många tillfällen där man kan använda det.

Här är ett exempel.

Istället för att skriva all denna kod:
KOD:
1:
 
2:
$result = $this->db->query("SELECT nr1 FROM numbers WHERE nr1 = 10 LIMIT 1");
3:
 
4:
$number = $this->result->fetch_array();
5:
$number = $number[0];
6:
 
7:
$result = $this->db->query("SELECT username FROM users WHERE id = '$number' LIMIT 1");
8:
 
9:
$user = $this->result->fetch_array();
10:
 
11:
echo $user[0];
12:
 
13:
 


Så skulle man kunna skriva följande:
KOD:
1:
 
2:
$result = $this->db->query("SELECT username FROM users WHERE id = ANY (SELECT nr1 FROM numbers WHERE nr1 = 10)");
3:
 
4:
$user = $this->result->fetch_array();
5:
 
6:
echo $user[0];
7:
 

Mycket mindre kod!!

Har sätt många göra som på det första exemplet, vilket är dumt eftersom det bara tar längre tid att utföra och längre tid att skriva.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
marabou
Administratör



Medlem i: 5281 dagar
Från: Sveriges framsida
Status: Offline



#731176
Inlägg Skrivet: 2013-04-12 10:13      Ämne: Citera

Spännande med ANY. Hade ingen aning om det. Dock när jag läser om det ser jag att ditt exempel är fel. Det motsvarar inte hur ANY fungerar. Du hämtar ut ETT nummer från databasen och gör en fråga på det.

Det du har i exemplet med ANY kan lika gärna använda IN:
KOD:
1:
SELECT username FROM users WHERE id IN (SELECT nr1 FROM numbers WHERE nr1 = 10)


ANY når sin fulla potential när man använder andra operatorer än =
KOD:
1:
SELECT product FROM products WHERE price < ANY (SELECT price FROM shopping_cart WHERE cart_id = 10)


Här hämtar den ut alla produkter som är billigare än NÅGOT (ANY) som du har i din produktkorg.
 

_________________
"Never argue with stupid people. They will bring you down to their level and beat you with experience."
- Mark Twain
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
LimpanDSS



Medlem i: 2427 dagar
Från: Stockholm
Status: Offline



#731185
Inlägg Skrivet: 2013-04-12 13:03      Ämne: Citera

marabou skrev:
Spännande med ANY. Hade ingen aning om det. Dock när jag läser om det ser jag att ditt exempel är fel. Det motsvarar inte hur ANY fungerar. Du hämtar ut ETT nummer från databasen och gör en fråga på det.

Det du har i exemplet med ANY kan lika gärna använda IN:
KOD:
1:
SELECT username FROM users WHERE id IN (SELECT nr1 FROM numbers WHERE nr1 = 10)


ANY når sin fulla potential när man använder andra operatorer än =
KOD:
1:
SELECT product FROM products WHERE price < ANY (SELECT price FROM shopping_cart WHERE cart_id = 10)


Här hämtar den ut alla produkter som är billigare än NÅGOT (ANY) som du har i din produktkorg.

Ja, du har rätt i det du säger. Kom dock inte på något bra exempel att använda det med.
 
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » Tips och Trix
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic