Programista PHP MySQL
om programmering i PHP et par ord

Delspørringer i MySQL 4.1

Publisert på Fredag 9 juni 2006 av Luke Jarzembowski

Jeg har nettopp oppdaget potensialet til delspørringer i MySQL. Det er sant at denne muligheten har vært innført ganske lenge siden, men inntil nå dette var ikke interessert ...

Grunnen var veldig enkel - det meste av servere der jeg jobbet var å installere eldre versjoner. Administratorer er redd for å installere nye versjoner av databasene av flere grunner:

  • usikkerhet for action - MySQL er Open Source og er ofte endret. Antallet prøveversjoner, beta, utvikling, etc. hindret gjennomføringen av eventuelle nyheter på kommersielle servere - ville være for hyppige "krasj"
  • Problemet med overføring av data - de nye motorene ikke kan tolke database filer fra tidligere versjoner. Den sikreste måten å bevege seg er eksport og import av data, som igjen er svært tidkrevende
  • noen selskaper følger politikken - hva du skal endre noe som fungerer bra? Faktisk, kan mangelen på delspørringer i MySQL "unngå" å gjøre loopen i PHP.

Hvordan bruke delspørringer? For eksempel utviklet jeg mitt problem:

Vi søker etter komplette data (tittel, innhold, etc..) Aktuelle artikkelen i hver del.

Bruker en eldre versjon enn 4.1 problemet kan være løst på to måter:

  • Lag en spørring som søker alle artiklene og grupper dem wegług avdelingen. Så vi loop PHP og for hver avdeling finner vi en (siste) artikkel.
  • Lag en spørring som søker etter fremveksten av de nyeste artiklene i seksjoner - SELECT `avdeling`, MAX (`date`) GROUP BY `id_dzial`. Så se etter disse artiklene. Etter passende dissekert resultater fra tidligere søk, søker etter informasjon om disse artiklene kan obsłóżyć "velge ett" (*)

Jeg vil bruke denne andre metoden for å lage en enkelt spørring med en delspørring. Det vil se slik ut:


SELECT * FROM `artikler` WHERE (`avdeling`, `date`)
IN
(
SELECT `avdeling`, MAX (`date`) FROM `artikler` GROUP BY `avdeling`
)
ORDER BY `date` DESC

Deler av det understrekes delspørring. Jeg håper at denne koden er forståelig. Det fungerer akkurat det samme som løsningen (*), bortsett fra at all databehandling er gjort på MySQL - PHP få et konkret svar å sette problemet. Dette forenkler en svært komplisert og lesbarhet av søknaden kode.

Dessverre, noen hosting bedrifter fortsatt ikke har på sine servere MySQL'aw versjon 4.1 eller nyere. Jeg vil anbefale dette selskapet - deres hosting sikkert støtter MySQL 4.1. Jeg vet det fordi jeg bruker det samme :-)

Hvis du liker dette innlegget, det
Del eller andre sosiale nettverk steder: Bookmark and Share
Kategorier: Programmering
Tags: , , , ,
Luke Jarzembowski Luke Jarzembowski, forfatter av bloggen - siden 2006 under illusjonen om at det vil bli rik ... ;-) Men fortsatt jobber hardt med dette. Programmer , blogger , og posisjoner , skape og fremme deres e-virksomheter . kontakt

Entries relatert til «delspørringer i MySQL 4.1"

    Ingen relaterte innlegg

Kommentar