Kyselyt mysqlissa php mysqli -kyselystä. Kyselyjen lisääminen (Power Query)

Tuholaisia ​​talossa 19.07.2023
Tuholaisia ​​talossa

Huomautus: Päällirakenne Power Query tarjotaan Excel 2016:ssa komentoryhmänä Lataa ja muunna. Tämän artikkelin tiedot koskevat sekä Power Queryä että uutta ryhmää. Katso lisätietoja Excel 2016:n Lataa ja muunna -ominaisuudesta.

Power Query -toiminnossa Lisätä luo uuden kyselyn, joka sisältää kaikki ensimmäisen kyselyn rivit ja sitten kaikki toisen kyselyn rivit.

Turvallisuushuomautus: Yksityisyyden tasot estää tietojen tahattoman yhdistämisen useista lähteistä, jotka voivat olla yksityisiä tai organisaatioon liittyviä. Joitakin kyselyitä käytettäessä käyttäjä voi tahattomasti lähettää tietoja yksityisestä tietolähteestä toiseen tietolähteeseen. Hyökkääjät voivat hyödyntää tätä tilaisuutta. Power Query analysoi jokaisen tietolähteen ja määrittää sen herkkyystason: julkinen, organisatorinen ja yksityinen. Lisätietoja tietosuojatasoista on kohdassa Yksityisyystasot.

Lisäyksen suorittaminen

Voit suorittaa kahden tyyppisen lisäystoiminnon: välilisäys tai upotettu liite. Käyttämällä välilisäys Jokaiselle lisäystoiminnolle luodaan uusi kysely. klo upotettu liite lisäät tietoja olemassa olevaan kyselyyn, kunnes saavutat lopullisen tuloksen. Tuloksena on uusi vaihe nykyisen pyynnön lopussa.

Sisäänrakennettu lisäys

Välilisäys


Katso myös:

Huomautus: Kyselyeditori näkyy vain ladattaessa, muokattaessa tai luotaessa uutta pyyntöä käyttämällä Power Query. Videolla näkyy ikkuna kyselyeditori joka tulee näkyviin, kun olet muokannut kyselyä Excel-työkirjassa. Katsoa kyselyeditori lataamatta tai muokkaamatta olemassa olevaa kyselyä työkirjassa, osiossa Ulkoisten tietojen vastaanottaminen nauhan välilehdellä Power Query valitse Muista lähteistä > Tyhjä pyyntö. Video näyttää yhden näyttötavoista kyselyeditori.

".
Ehkä Moskovan toimiston pojilla ei ole aikaa, joten seuraava on ilmainen käännös Query Language Reference -sovelluksesta (versio 0.7).
Google Visualization API. Kyselykieli (versio 0.7)
Google Visualization API:n kyselykielen avulla voit käsitellä tietoja kyselyn kautta tietolähteeseen.

Yleensä visualisointi vaatii tietojen esittämisen tietyssä muodossa. Esimerkiksi ympyräkaavio vaatii kaksi saraketta: tekstitunnisteen ja numeerisen arvon. Tietolähde ei välttämättä vastaa tätä rakennetta. Se voi sisältää enemmän sarakkeita tai niiden järjestys on erilainen kuin mitä kaaviossa vaaditaan.
Kyselykielen avulla voimme jäsentää dataa tavalla, jota tarvitsemme tuloksen saavuttamiseksi.
Kyselykielen syntaksi on samanlainen kuin SQL:ssä. SQL:n käyttöön taitaneet hallitsevat nopeasti kyselykielen. Syntaksiosiossa kuvataan näiden kielten erot.
Huomaa, että visualisointiin ei aina tarvitse käyttää kyselykieltä. Vaatii pohjan käyttääkseen sitä. sisältöön.

Kyselykielen käyttäminen

Voit lisätä kyselymerkkijonon tietolähteeseen kahdella tavalla: JavaScript-koodista tai parametrina tietolähdelinkkiin. Jos linkkisi ei sisällä kyselyparametreja, oletusarvoisesti palautetaan koko tietojoukko. Voit muuttaa tätä joukkoa säätämällä kyselyn itse tietolähteeseen.

Jos käytät QUERY-toimintoa Google Sheetsissa, voit ohittaa seuraavat kohdat ja siirtyä seuraavaan osaan.

Pyynnön asettaminen JavaScriptistä

Jos haluat määrittää kyselymerkkijonon JavaScript-koodista, sinun on kutsuttava menetelmä setQuery luokka google.visualization.Query .
var query = uusi google.visualization.Query(DATA_SOURCE_URL);
query.setQuery("valitse osasto, summa(palkka) ryhmä osastoittain");
query.send(handleQueryResponse);

Tietolähteeseen voidaan lisätä kyselymerkkijono parametrilla tq. Tällä tavalla on mahdollista käyttää muiden kehittäjien kirjoittamia visualisointeja yksinkertaisesti muokkaamalla tietojoukkoasi.
Kyselymerkkijonon on oltava oikein koodattu URL-parametriksi. Voit käyttää JavaScript-toimintoa encodeURIComponent koodausta varten tai tee se manuaalisesti osan lopussa olevalla työkalulla.
Esimerkki
Katsotaanpa esimerkkikyselyä Google Sheetille (Muista, että saraketunnisteet ovat aina kirjaimia. Julkaistujen sarakkeiden nimet eivät ole tunnisteita. Kyselyssä on käytettävä saraketunnisteita)
Koodauksen jälkeen pyyntö näyttää tältä:
valitse%20A%2C%20sum(B)%20group%20by%20A
Oletetaan, että tietotaulukon osoite on seuraava:
http://spreadsheets.google.com/a/google.com/tq?key=ABCDE
Lisätään pyyntöparametri &tq=YOUR_QUERY_STRING linkkiin taulukkoon ja saat valmiin kyselymerkkijonon
http://spreadsheets.google.com/a/google.com/tq?key=ABCDE&tq=select%A%2C%20sum(B)%20group%20by%20A

Kielen syntaksi

Arvostelu

Kyselykieleni on hyvin samanlainen kuin SQL. On kuitenkin joitain ominaisuuksia, jotka on otettava huomioon.
Tietotaulukko
Tämä asiakirja esittelee "tietotaulukon" käsitteen viittaamaan kyselyn tuloksiin. Taulukko koostuu riveistä ja sarakkeista. Jokaisella sarakkeella on seuraavat ominaisuudet:
  • Tunniste (tai sarakkeen tunnus). Käytetään viittaamaan taulukon sarakkeisiin. Huomaa, että sinun tarvitsee viitata sarakkeeseen vain sen tunnisteen perusteella. Temppu: Älä käytä välilyöntejä tunnisteissa, tämä voi aiheuttaa vaikeuksia pyynnön muokkaamisessa. Lisäksi kaikki tunnisteet, joissa on välilyöntejä, on sisällytettävä lainausmerkkeihin.
  • Label. Tämä on merkkijono, joka yleensä näytetään loppukäyttäjille. Esimerkiksi selite ympyräkaaviossa tai otsikko taulukkokaaviossa. Ei sovellu QUERY()-funktiolle Google Sheetsissa.
  • Tietotyypit. Seuraavia tietotyyppejä tuetaan: merkkijono, numero, looginen arvo, päivämäärä, päivämäärä, aika, kellonaika. Kaikki sarakkeen arvot ovat kyseisen sarakkeen tietotyyppiä tai nollia. Nämä tietotyypit ovat hyvin samanlaisia ​​kuin JavaScript-tyypit, mutta eivät identtisiä. Ne on kuvattu Literaalit-osiossa.
  • Muotoilumalleja. Tietotaulukot voivat tukea kaikkien tai joidenkin sarakkeiden muotoilumalleja. Nämä on kuvattu Muotoilu-osiossa.
Tietotaulukko, jota käytetään kaikissa esimerkeissä
Tämän asiakirjan esimerkeissä käytetään taulukkoa, jossa on seuraavat tieto- ja saraketyypit:
nimi
merkkijono
osasto
merkkijono
lounasaika
vuorokaudenaika

Palkka
määrä

palkkauspäivä
Päivämäärä
ikä
määrä
on Seniori
boolean
virkamiesAloitusaika
treffiaika
John Eng 12:00:00 2005-03-19 35 totta 2007-12-02 15:56:00
Dave Eng 12:00:00 2006-04-19 27 väärä tyhjä
Sally Eng 13:00:00 2005-10-10 30 väärä tyhjä
Ben Myynti 12:00:00 2002-10-10 32 totta 2005-03-09 12:30:00
Dana Myynti 12:00:00 2004-09-08 25 väärä tyhjä
Mike Markkinointi 13:00:00 2005-01-10 24 totta 2007-12-30 14:40:00

Kielioperaattorit

Kyselykieli koostuu seuraavista yhden tai kahden sanan lauseista. Operaattoreiden on seurattava toisiaan taulukossa esitetyssä järjestyksessä:
Operaattori Käyttö
valitse Valitsee, mitkä sarakkeet palautetaan ja missä järjestyksessä. Jos operaattori jätetään pois, kaikki taulukon sarakkeet palautetaan.
Palauttaa vain ne taulukon rivit, jotka vastaavat ehtoa. Jos operaattori jätetään pois, kaikki taulukon rivit palautetaan.
ryhmitellä Ryhmittelee arvot rivin mukaan.
pivot Muuntaa sarakkeiden yksilölliset arvot uusiksi sarakkeiksi pivot-taulukon esimerkin mukaisesti.
tilata mukaan Lajittelee rivit arvojen perusteella.
raja Asettaa rajan palautettaville riveille.
offset Ohittaa tietyn määrän rivejä tulosteesta.
etiketti Asettaa sarakkeiden kuvatekstejä.
muoto Muotoilee määritetyissä sarakkeissa olevat arvot muotoilumallien mukaan.
vaihtoehtoja Asettaa lisäasetukset.
alkaen From-operaattoria ei käytetä.
Valitse
Select-lause määrittää, mitkä sarakkeet palautetaan ja missä järjestyksessä. Jos operaattoria ei ole määritetty tai valitse * on määritetty, kaikki taulukon sarakkeet palautetaan alkuperäisessä järjestyksessä. Sarakkeisiin voidaan viitata tunnisteiden, mutta ei tunnisteiden kautta. Google Sheetsin tunnisteet ovat yksi- tai kaksikirjaimia sarakkeiden nimiä (A, B, C, ..., AC, ..., DC, ...).
Operaattoriparametrit voivat olla saraketunnisteita, yhdistelmäfunktioita, skalaarifunktioita tai aritmeettisia operaattoreita.
Esimerkkejä:
valitse *
valitse osasto, palkka
valitse max (palkka)
sähköpostiosoitePäivämäärä):

Saamme tuloksen:
lounasaika nimi
12:00:00 John
12:00:00 Dave
13:00:00 Sally
12:00:00 Ben
12:00:00 Dana
13:00:00 Mike
Where-lausetta käytetään palauttamaan vain ne rivit, jotka täyttävät ehdot.
Ehtojen kuvaamiseen käytetään yksinkertaisia ​​vertailuoperaattoreita<=, <, >, >=, =, !=, <>. Molemmat operaattorit !=,<>tarkoittaa ei tasa-arvoinen. Jouseita verrataan niiden leksikografisen arvon perusteella. Huomaa, että yhtäläisyys tarkistetaan =-operaattorilla, ei ==-operaattorilla, kuten monissa kielissä. Vertailu nulliin tehdään läpi on null eikä se ole nolla. Kun käytät QUERY():tä Google Sheetsissa, merkkijonokentässä on tavallisesti tyhjä arvo "" nullin sijaan.
Voit yhdistää useita ehtoja käyttämällä loogisia operaattoreita ja tai ei. Sulkuja käytetään määrittämään selkeä prioriteetti.

Where-lause käyttää myös lisäoperaattoreita monimutkaisempien merkkijonovertailujen suorittamiseen. Nämä operaattorit ottavat kaksi argumenttia, joiden on oltava merkkijonoja. Kaikki ei-merkkijonoargumentit (päivämäärä, numero) muunnetaan merkkijonoksi ennen vertailua. Vertailussa kirjainkoolla on merkitystä (tasoittaaksesi tätä ominaisuutta käyttämällä skalaarifunktioita ylä(), alsó()).
sisältää - vastaa alimerkkijonoa. Lauseke palauttaa tosi, jos osa merkkijonosta vastaa täysin annettua argumenttia - alimerkkijonoa. Esimerkiksi jos nimi sisältää "John", palaa "John", "John Adams", "Long John Silver" mutta ei "John Adams".

Esimerkkejä:
valitse *
valitse osasto, palkka
valitse max (palkka)
Seuraava esimerkki näyttää tunnisteviittauksien käytön välilyönnillä ( sähköpostiosoite) ja tunnisteisiin, jotka vastaavat varattujen sanojen nimiä ( Päivämäärä):
valitse "sähköpostiosoite", nimi, "päivämäärä".
Sovelletaan seuraavaa kyselyä esimerkkitaulukkoon:
Saamme tuloksen:
lounasaika nimi
12:00:00 John
12:00:00 Dave
13:00:00 Sally
12:00:00 Ben
12:00:00 Dana
13:00:00 Mike

Tässä artikkelissa opimme lähettää tietokantakyselyitä PHP:n kautta. Tämä artikkeli on erittäin tärkeä, ja sinun on ymmärrettävä se. Vakuutan kuitenkin - materiaali on hyvin yksinkertainen, joten vaikeuksia ei pitäisi olla.

Ennen kuin siirryt artikkelin aiheeseen, varoitan sinua etukäteen, että en analysoi yksityiskohtaisesti SQL-kieli. Kaikki tarvittava tieto on lajiteltu kategoriaan, joka on omistettu, mutta tässä vain työskentelee MySQL:n kanssa PHP:n kautta.

Nyt siirrytään asiaan tietokantakyselyjen lähettäminen PHP:llä:


}
$mysqli->query("INSERT INTO mytable (nimi, sähköpostiosoite) VALUES ("OmaNimi", " [sähköposti suojattu]")");
$mysqli->sulje();
?>

Tässä esimerkissä muodostimme yhteyden tietokantaan, tarkistimme yhteyden onnistumisen ja lähetimme pyynnön menetelmällä kysely() ja sulki sitten yhteyden. Kuten näet, kaikki on hyvin yksinkertaista. Lähettääksesi minkä tahansa SQL-kyselyt Yksi menetelmä riittää - kysely(), siis sisään tässä tapauksessa kaikki on järjettömän yksinkertaista.

Monimutkaistaan ​​nyt tehtävää hieman. Katsotaanpa kyselyitä, jotka palaavat tulos_joukko-tulos. Suosituin palautuspyyntö tulos_joukko on valikoima tietoja taulukosta. Seuraavassa esimerkissä otamme näytteitä tiedoista ja näytämme sitten tuloksen:

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
if (mysqli_connect_errno()) (
echo "Yhteys epäonnistui: ".mysqli_connect_error();
}
$result_set = $mysqli->
while ($rivi = $result_set->fetch_assoc()) (
print_r($rivi);
kaiku"
";
}
$tulos_set->sulje();
$mysqli->sulje();
?>

Ensinnäkin haluan selittää hieman, mitä se on. tulos_joukko. Result_set- tämä on taulukko tuloksista. Tässä taulukossa on joukko tietueita (taulukon rivejä). Ja jos haluat näyttää kaikki tietueet, sinun on iteroitava taulukon jokaisella rivillä ja näytettävä se. Ja nyt selitän esimerkillä: pyynnön lähettämisen jälkeen luomme tulos_joukko. Sitten määritämme muuttujan silmukassa rivi seuraavan rivin arvo, eli yksiulotteinen taulukko, jonka menetelmä palauttaa hae_assoc(). Kun kaikki rivit ovat päättyneet, menetelmä hae_assoc() palaa väärä, ja silmukka poistuu. Silmukan sisällä sillä aikaa annamme vain taulukon käyttämällä debug-toimintoa print_r(), vaikka se voitaisiin varmasti päätellä käyttämällä jokaiselle, mutta nyt se ei ole välttämätöntä.

Tehdään lyhyesti yhteenveto siitä, kuinka työskennellä tulos_joukko:

  1. Saada tulos_joukko lähettämällä vastaavan pyynnön tietokantaan.
  2. Määritä silmukassa jokaisessa iteraatiossa seuraava rivi (tietue) kohteesta tulos_joukko menetelmää käyttämällä hae_assoc() jokin muuttuja rivi. Sitten voit työskennellä tämän muuttujan kanssa yksiulotteisena assosiatiivisena taulukkona, jossa avaimet ovat taulukon kenttien nimiä ja arvot vastaavat nykyistä tietuetta.
  3. Muista sulkea tulos_joukko menetelmä kiinni() resurssien tyhjentämiseen.

Kuten huomasit, menetelmä hae_assoc() palauttaa aina seuraavan tietueen. Eli ensin 1., sitten 2., sitten 3. ja niin edelleen. Jos sinulla on hyvä ohjelmointikokemus, arvaat heti, että tämä tapahtuu sisäisen osoittimen ansiosta, jota voit tietysti siirtää. Missä sitä käytetään? Tätä voidaan käyttää esimerkiksi silloin, kun sinun on työskenneltävä tulos_joukko Ei 1 , A 2 ja useamminkin. Voit välttää saman pyynnön luomisen uudelleen siirtämällä osoittimen alkuun. Ja sitten voit aloittaa raa'an voiman uudelleen tulos_joukko käyttämällä menetelmää fetch_assoc().

On olemassa tapa muuttaa osoittimen sijaintia data_seek(), joka ottaa kokonaisluvun arvosta 0 ennen " tietueiden määrä - 1", vastaavasti osoitin asetetaan parametria vastaavaan merkintään:

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
if (mysqli_connect_errno()) (
echo "Yhteys epäonnistui: ".mysqli_connect_error();
}
$result_set = $mysqli->query("SELECT * FROM mytable");
$tulosjoukko->rivien_määrä;
while ($rivi = $result_set->fetch_assoc()) (
print_r($rivi);
kaiku"
";
}
$tulosjoukko->data_haku(0);
while ($rivi = $result_set->fetch_assoc()) (
print_r($rivi);
kaiku"
";
}
$tulos_set->sulje();
$mysqli->sulje();
?>

Tässä esimerkissä meillä on tulos tulosjoukon tietueiden määrä omaisuutta käyttämällä rivien_määrä. Tutustuimme myös menetelmään data_seek(). Toisin sanoen iteroimme koko tuloksen ja palasimme sitten osoittimen kohtaan 0 ennätys ja kävin tuloksen uudelleen läpi.

Tässä artikkelissa toistimme yhteyden muodostamisen tietokantaan ja yhteyden sulkemisen. Ja myös selvisi kuinka tehdä kysely tietokannasta PHP:n kautta. Oppinut, kuinka saada result_set ja kuinka työskennellä sen kanssa. Tämä on kaikki mitä sinun tulee tietää menestyäksesi työskentelee MySQL:n kanssa PHP:ssä.

Luulen, että kaikki ovat kuulleet Pareton säännöstä. Millä tahansa alalla 20 % ponnisteluista tuottaa 80 % tuloksista. Esimerkiksi käytät 20 % vaatekaapistasi 80 % ajasta, 20 % asiakkaistasi tuo 80 % tuloistasi. Se on sama Google Sheetsissä: kun tiedät 20% olemassa olevista toiminnoista, voit ratkaista 80% kaikista mahdollisista ongelmista.

Minusta Query on yksi Google Sheetsin hyödyllisimmistä ominaisuuksista. Mutta Google-ohje kuvaa sitä hyvin pinnallisesti, eikä tämän toiminnon koko tehoa paljasteta. Tarkemmin tarkasteltuna käy selväksi, että se pystyy korvaamaan suurimman osan olemassa olevista toiminnoista.

Jotta voit työskennellä QUERYn kanssa, tarvitset SQL:n perustiedot. Niille, jotka eivät tiedä, älä huoli, QUERY-toiminto tukee itse asiassa hyvin perusominaisuuksia SQL:ssä.

QUERY syntaksi

QUERY(data; pyyntö; [otsikot])
  • tiedot— tämä on joukko soluja, jotka toimivat tietokantana SQL-kyselylle;
  • pyyntö— SQL-kyselyn teksti;
  • otsikot on valinnainen argumentti, jossa voit määrittää, kuinka moni taulukon ensimmäisistä riveistä sisältää otsikoita.

Lisätietojen havainnon maksimoimiseksi ehdotan seuraavan Google-taulukon avaamista ja kopioimista

Doxissa, josta juuri loit kopion, on useita arkkeja. DB-arkki on tietokanta, jota käytämme QUERY-funktiolla. Tasotaulukot sisältävät esimerkit, joita tarkastelemme tässä artikkelissa. Jokaisen uuden tason myötä esimerkki tulee monimutkaisemmaksi.

SQL-kyselysuunnitelma Query-funktiossa

Mikä tahansa SQL-kysely koostuu erillisistä lohkoista, joita kutsutaan usein panetteluksi. Kyselyfunktion SQL käyttää Google Visualization API -kyselykielen syntaksia, joka tukee seuraavia lausekkeita:

  • valitse— luettelo kentät, jotka pyyntö palauttaa;
  • missä— sisältää luettelon ehdoista, joiden mukaan pyynnön käsittelemä tietojoukko suodatetaan;
  • ryhmitellä— sisältää luettelon kentistä, joiden mukaan haluat ryhmitellä tulokset;
  • pivot— auttaa rakentamaan ristikkäisiä välilehtiä käyttämällä yhden sarakkeen arvoa lopullisen taulukon sarakkeiden niminä;
  • tilata mukaan— vastaa tulosten lajittelusta;
  • raja- tällä kyselyn osalla voit asettaa rajan kyselyn palauttamien rivien lukumäärälle;
  • offset— käyttämällä tätä herjausta, voit asettaa ensimmäisten rivien määrän, joita kyselyn ei tarvitse käsitellä;
  • etiketti— tämä herjaus on vastuussa pyynnössä palautettujen kenttien nimistä;
  • muoto— vastaa tulostietojen muodosta;
  • vaihtoehdot - mahdollistaa lisätietojen lähtöparametrien asettamisen.

Hello World for Query (Valitse) -toiminto

Siirrytään Taso_1-taulukkoon ja katsotaan kaavaa solussa A1.

Kysely(DB!A1:L1143;"select * limit 100")

Osa kaavaa " DB!A1:L1143" on vastuussa tietokannasta, josta teemme näytteenoton. Toinen osa " valitse * raja 100"sisältää itse pyynnön tekstin. "*"-symboli tarkoittaa tässä tapauksessa kaikkien tietokannan sisältämien kenttien palauttamista. Käyttämällä " raja 100» Rajoitamme lähdön enintään 100 riviin. Tämä on esimerkki yksinkertaisimmasta pyynnöstä. Valitsimme tietokannasta ensimmäiset 100 riviä. Tämä on eräänlainen "Hei maailma" Kysely-toiminnolle.

Käytämme suodattimia ja lajittelua (Mistä, Järjestä)

Siirry taulukkoon Taso_2. Valitaan vain osa tarvitsemistamme kentistä ja asetetaan suodatus- ja lajitteluehdot. Käytämme esimerkiksi tietoja vain Kampanja_1- ja Kampanja_2-kampanjoista ajalta 22.–25.10.2015. Lajitellaan ne istuntojen määrän mukaan laskevaan järjestykseen. Suodattaaksesi ja lajitellaksesi sinun on lisättävä pyyntötekstiin kuvaus panettelusta Missä Ja Tilaus. Yllä kuvatun esimerkin näyttämiseksi tuloksena olevassa taulukossa tarvitsemme Kampanja-, Päivämäärä- ja Istunnot-kentät. He ovat niitä, jotka on lueteltava herjauksessa Valitse.

Tietokantakenttiä pääsee käsiksi sen laskentataulukon sarakkeiden nimien kautta, joissa tietokanta sijaitsee.

Meidän tapauksessamme DB-arkin tiedot ja pääsy tiettyihin kenttiin kirjoitetaan arkin sarakkeiden nimeksi. Näin ollen pakolliset kentät sijaitsevat seuraavissa sarakkeissa:

  • ala Päivämäärä— sarake A;
  • ala Kampanja— sarake B;
  • ala Istunnot- sarake G.

Näin ollen pyynnön osa, joka vastaa tuloksena tulostettujen tietojen luettelosta, näyttää tältä:

Valitse A, B, G

Seuraavaksi pyynnössä on herjaus Missä. Pyyntöä kirjoitettaessa panettelu on asetettava siinä järjestyksessä, jossa se on kuvattu tämän artikkelin ensimmäisessä osassa. Ilmoituksen jälkeen Missä meidän on lueteltava suodatusehdot. Tässä tapauksessa suodatamme tiedot kampanjan nimen (Campaign) ja päivämäärän (Päivämäärä) mukaan. Käytämme useita suodatusehtoja. Kyselytekstin tulee sisältää kaikkien ehtojen välissä looginen operaattori OR tai AND. Suodatus päivämäärien mukaan poikkeaa hieman numero- ja tekstiarvojen suodattamisesta; se edellyttää Date-operaattorin käyttöä. Tietojen suodattamisesta vastaava pyynnön osa näyttää tältä:

MISSÄ (A >= päivämäärä"2015-10-22" JA A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")

Hakasulkeiden avulla jaoimme tietojen suodatuksen kahteen loogiseen osaan: ensimmäinen suodattaa päivämäärän mukaan, toinen suodattaa kampanjan nimen mukaan. Tässä vaiheessa valittavia tietoja ja tietojen suodatusehtoja kuvaava kaava näyttää tältä:

Query(DB!A1:L1143;" Valitse A, B, G WHERE (A >= päivämäärä"2015-10-22" JA A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")")

Voit kopioida ja liittää sen esimerkiksi tässä viestissä esimerkkinä käytetyn asiakirjan uudelle arkille ja saada seuraavan tuloksen:

Tavallisten loogisten operaattoreiden lisäksi (=,<, >) WHERE-lohko tukee muita suodatusoperaattoreita:

  • sisältää— tarkistaa merkkijonon tiettyjen merkkien sisällön. Esimerkiksi WHERE A sisältää sanan "John" palauttaa suodattimeen kaikki sarakkeen A arvot, jotka sisältävät Johnin, esimerkiksi John Adams, Long John Silver;
  • alkaa kanssa- suodattaa arvot etuliitteellä, eli tarkistaa rivin alussa olevat merkit. Esimerkiksi kirjaimella "en" alkava arvo palauttaa arvot engineering ja english;
  • loppuu- suodattaa arvot merkkijonon lopussa. Esimerkiksi linja 'cowboy ' palautetaan sanoilla "päättyy "poika" tai "päättyy "y";
  • Ottelut— vastaa säännöllistä lauseketta. Esimerkiksi: missä vastaa ‘.*ia ' palauttaa arvot Intia ja Nigeria.
  • Kuten - Säännöllisten lausekkeiden yksinkertaistettu versio, se tarkistaa, vastaako merkkijono annettua lauseketta käyttämällä yleismerkkejä. Tällä hetkellä like tukee kahta yleismerkkiä: "%" tarkoittaa mitä tahansa merkkijonon määrää ja "_" tarkoittaa mitä tahansa merkkiä. Esimerkiksi "jos nimi, kuten 'fre%'" vastaa rivejä 'ilmainen ’, 'fred ' ja 'freddy ’.

Kysely on jo suodattanut tiedot tietyltä ajanjaksolta ja jättänyt vain tarvitsemamme kampanjat. Jäljelle jää vain lajitella tulos laskevaan järjestykseen istuntojen lukumäärän mukaan. Näissä kyselyissä lajittelu suoritetaan perinteisesti SQL:lle panettelun avulla Tilaa mukaan. Syntaksi on melko yksinkertainen: sinun tarvitsee vain listata kentät, joiden mukaan haluat lajitella tuloksen, ja määrittää myös lajittelujärjestyksen. Oletusjärjestys on nouseva eli nouseva. Jos määrität desc-parametrin kentän nimen jälkeen, kysely palauttaa tuloksen alenevassa järjestyksessä herjauksessa määritetyistä. Tilaa mukaan kentät.

Meidän tapauksessamme pyyntötekstin rivi vastaa suodatuksesta:

Tilaus G desc

Vastaavasti Level_2-arkin kaavan lopputulos, joka ratkaisee tarvitsemamme ongelman, näyttää tältä:

Query(DB!A1:L1143;" SELECT A, B, G WHERE (A >= päivämäärä"2015-10-22" AND A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2") ORDER BY G DESC")

Nyt voit käyttää yksinkertaista SQL-syntaksia ja QUERY-toimintoa tietojen suodattamiseen ja lajitteluun.

resurssi mysql_query(merkkijonokysely [, resurssin linkin_tunnus])

mysql_query() lähettää pyynnön aktiiviseen palvelintietokantaan, johon välitetty osoitin viittaa. Jos linkkitunnus jätetään pois, käytetään viimeistä avointa yhteyttä. Jos avoimia yhteyksiä ei ole, funktio yrittää muodostaa yhteyden DBMS:ään funktion tapaan mysql_connect() ilman parametreja. Kyselyn tulos puskuroidaan.

Kommentti: Kyselymerkkijono EI saa päättyä puolipisteeseen.

Vain SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() palauttaa osoittimen pyynnön tulokseen, tai VÄÄRÄ jos pyyntöä ei täytetty.
Muissa tapauksissa (LISÄÄ, PÄIVITYS, POISTA, PUDOTA jne.), mysql_query() palaa TOTTA onnistuneen pyynnön tapauksessa ja VÄÄRÄ virheen sattuessa. Arvo ei ole sama VÄÄRÄ osoittaa, että pyyntö on suoritettu onnistuneesti. Se ei kerro vaikutusten tai palautettujen rivien määrää. On täysin mahdollista, että onnistunut kysely ei vaikuta yhteen riviin.

Seuraava pyyntö on muotoiltu väärin ja mysql_query() palaa VÄÄRÄ :

mysql_query() katsotaan myös virheelliseksi ja palautetaan VÄÄRÄ, jos sinulla ei ole tarpeeksi oikeuksia työskennellä pyynnössä määritetyn taulukon kanssa.

Kun työskentelet kyselyn tulosten kanssa, voit käyttää funktiota mysql_num_rows() löytääksesi SELECT-kyselyn palauttaman luvun, rivit tai mysql_affected_rows() löytääksesi DELETE-, INSERT-, REPLACE- tai UPDATE-kyselyillä käsiteltyjen rivien määrän.

Vain kyselyille SELECT, SHOW, DESCRIB, EXPLAIN, function mysql_query() palauttaa osoittimen tulokseen, jota voidaan käyttää funktiossa mysql_fetch_array() ja muita toimintoja, jotka toimivat kyselyn tulosten kanssa. Kun olet lopettanut tuloksen käsittelyn, voit vapauttaa sen tallentamiseen käytetyt resurssit funktiolla



Suosittelemme lukemista

Yläosa