Programista PHP MySQL
ohjelmoinnista PHP muutamalla sanalla

Alikyselyjä MySQL 4.1

Julkaistu perjantaina 9. kesäkuuta 2006 mennessä Luke Jarzembowski

Olen juuri löytänyt mahdollisuuksia alikyselyjä MySQL. Vaikka tämä mahdollisuus on otettu käyttöön kauan aikaa sitten, mutta toistaiseksi tämä ei ollut kiinnostunut ...

Syy oli hyvin yksinkertainen - useimmat palvelimia, joihin tein oli asentaa vanhempia versioita. Ylläpitäjät eivät uskalla asentaa uusia versioita tietokantojen useista syistä:

  • epävarmuus toiminta - MySQL on avoimeen lähdekoodiin ja on usein muutettu. Määrä kokeiluversioita, beeta-, kehitys-, ja näin estäneet toteuteta mitään uusia tuotteita kaupallisen palvelimet - olisi aivan liian usein "kaatuu"
  • ongelma tiedonsiirron - uudet moottorit eivät voi tulkita tietokantatiedostot edellisistä versioista. Varmin tapa liikkua on viedä ja tuoda tietoja, mikä puolestaan ​​on hyvin aikaa vievää
  • jotkut yritykset noudattavat politiikkaa - miksi muuttaa jotain joka toimii hyvin? Itse asiassa ei ole alikyselyjä MySQL voisit "kiertää" tekee silmukan PHP.

Miten alikyselyjä? Esimerkiksi Kehitin ongelmani:

Etsimme täydelliset tiedot (nimi, sisältö, jne.). Tuoreessa artikkelissa kussakin osiossa.

Käyttämällä versio yli 4,1 ongelma voitaisiin ratkaista kahdella tavalla:

  • Tee kysely etsii kaikki artikkelit ja ryhmittelee ne wegług osasto. Sitten silmukka PHP sekä kunkin otsakkeen löydämme (viime aikoina) artikkeli.
  • Emme pyydä, että huolta ilmaantumisen tuoreimmat artikkelit yksiköissä - SELECT `osasto`, MAX (`päivä`) GROUP BY `id_dzial`. Sitten etsimään näitä artikkeleita. Kun oikea dissektoitujen tuloksia aiempien tutkimusten, etsivät tiedot näistä artikkeleista voi obsłóżyć "single select" (*)

On tämä toinen menetelmä on luoda yhtenäinen kyselyn alikyselyjä. Se näyttää tältä:


SELECT * FROM `artikkeleita` WHERE (`osasto`, `data`)
IN
(
SELECT `osasto`, MAX (`päivä`) FROM `artikkeleita` GROUP BY `osasto`
)
ORDER BY `päivä` DESC

Osa tätä on korostettu alikyselyn. Toivon, että koodi on ymmärrettävää. Se toimii täsmälleen sama kuin liuoksen (*), paitsi että kaikki tietojenkäsittely tehdään MySQL - PHP saa betonin vastauksen laittaa ongelmaan. Tämä yksinkertaistaa hyvin monimutkainen ja luettavuuden sovelluskoodin.

Valitettavasti jotkut hosting-yritykset eivät vieläkään ole niiden palvelimet MySQL'aw versio 4.1 tai uudempi. Haluaisin suositella tätä yritystä - niiden hosting varmasti tukee MySQL 4.1. Tiedän, koska käytän :-)

Jos pidät tämän artikkelin, ota hänet
tai suositella muita sosiaalisen verkostoitumisen sivustoja: Bookmark and Share
Luokat: Ohjelmointi
Tunnisteet: , , , ,
Luke Jarzembowski Luke Jarzembowski, kirjoittaja blogi - vuodesta 2006 siinä uskossa, että se on rikas ... ;-) Mutta silti kovasti työtä tämän. Ohjelmat , bloggaaminen ja kantoja , luoda ja edistää niiden e-yrityksiä . kontakt

Merkinnät muistuttavat "alikyselyjä MySQL 4.1"

    Ei aiheeseen liittyviä virkoja

Kommentti