Mysql query mula sa php mysqli query. Pagdaragdag ng Mga Query (Power Query)

Mga peste sa bahay 19.07.2023
Mga peste sa bahay

Tandaan: superstructure kapangyarihan query inaalok sa Excel 2016 bilang isang pangkat ng mga utos I-download at i-convert. Nalalapat ang impormasyon sa artikulong ito sa Power Query at sa bagong pangkat. Tingnan ang tampok na I-download at I-convert sa Excel 2016 para sa higit pang impormasyon.

Sa pagpapatakbo ng Power Query Idagdag lumilikha ng bagong query na naglalaman ng lahat ng mga row mula sa unang query at pagkatapos ay ang lahat ng mga row mula sa pangalawang query.

Paalala sa kaligtasan: Mga antas ng privacy maiwasan ang hindi sinasadyang pagsasama-sama ng data mula sa maraming mapagkukunan, na maaaring pribado o organisasyon. Kapag gumagamit ng ilang query, maaaring hindi sinasadyang magpadala ang user ng data mula sa isang pribadong data source patungo sa isa pang data source. Ang pagkakataong ito ay maaaring samantalahin ng mga umaatake. Sinusuri ng Power Query ang bawat data source at tinutukoy ang antas ng privacy nito: pampubliko, organisasyon, at pribado. Para sa higit pang impormasyon tungkol sa mga antas ng privacy, tingnan ang artikulo sa Mga antas ng privacy.

Nagsasagawa ng pagdaragdag

Maaari kang magsagawa ng add operation ng dalawang uri: intermediate na karagdagan o built-in na karagdagan. Gamit intermediate na karagdagan ang isang bagong query ay nilikha para sa bawat add operation. Sa built-in na karagdagan magdagdag ka ng data sa isang umiiral na query hanggang sa maabot mo ang huling resulta. Ang resulta ay isang bagong hakbang sa dulo ng kasalukuyang kahilingan.

Built-in na karagdagan

Intermediate na karagdagan


Tingnan din:

Tandaan: Editor ng Query ipinapakita lamang kapag nag-a-upload, nag-e-edit o gumagawa ng bagong query gamit kapangyarihan query. Ipinapakita ng video ang bintana editor ng query Ang lalabas pagkatapos mong mag-edit ng query sa isang Excel workbook. Upang tingnan editor ng query nang hindi naglo-load o binabago ang isang umiiral nang query sa workbook, sa seksyon Pagkuha ng panlabas na data sa tab na ribbon kapangyarihan query pumili Mula sa iba pang mapagkukunan > Empty request. Ang video ay nagpapakita ng isang paraan upang ipakita editor ng query.

".
Marahil ang mga lalaki mula sa tanggapan ng Moscow ay walang oras, kaya magkakaroon pa ng libreng pagsasalin ng Query Language Reference (Bersyon 0.7).
Google Visualization API. Wika ng Query (Bersyon 0.7)
Ang Google Visualizations API query language ay nagbibigay-daan sa iyong manipulahin ang data sa pamamagitan ng isang query laban sa isang data source.

Bilang isang tuntunin, para sa visualization kinakailangan na magbigay ng data sa ilang partikular na anyo. Halimbawa, ang isang pie chart ay nangangailangan ng dalawang column: isang text label at isang numeric na halaga. Sa kasong ito, maaaring hindi tumutugma ang pinagmumulan ng data sa istrukturang ito. Maaaring naglalaman ito ng higit pang mga column, o ang kanilang pagkakasunud-sunod ay magiging iba sa kinakailangan para sa chart.
Ang wika ng query ay nagpapahintulot sa amin na buuin ang data sa paraang kailangan namin upang makamit ang resulta.
Ang syntax ng wika ng query ay katulad ng SQL. Ang mga may kasanayang gumamit ng SQL ay mabilis na makakabisado ang wika ng query. Inililista ng seksyong syntax ang mga pagkakaiba sa mga wikang ito.
Tandaan na hindi palaging kinakailangan na gumamit ng wika ng query para sa pag-render. Kinakailangan ang isang base upang magamit ito. Sa nilalaman.

Gamit ang Query Language

Maaari kang magdagdag ng string ng query sa isang data source sa dalawang paraan: mula sa JavaScript code, o bilang isang parameter sa isang link ng data source. Kung walang mga parameter ng query ang iyong link, ibabalik ang buong dataset bilang default. Maaari mong baguhin ang set na ito sa pamamagitan ng pagsasaayos ng query sa mismong data source.

Kung ginagamit mo ang function na QUERY sa Google Sheets, maaari mong laktawan ang mga sumusunod na talata at pumunta sa susunod na bahagi.

Pagtatakda ng kahilingan mula sa JavaScript

Upang itakda ang string ng query mula sa JavaScript code, kailangan mong tawagan ang pamamaraan setQuery google.visualization.Query class.
var query = bagong google.visualization.Query(DATA_SOURCE_URL);
query.setQuery("select dept, sum(suweldo) group by dept");
query.send(handleQueryResponse);

Maaaring idagdag ang string ng query sa data source gamit ang parameter tq. Kaya, posibleng gumamit ng mga visualization na isinulat ng ibang mga developer, sa pamamagitan lang ng pagsasaayos ng iyong dataset.
Ang string ng query ay dapat na maayos na naka-encode bilang isang parameter ng URL. Maaari mong gamitin ang JavaScript function encodeURIComponent upang i-encode o gawin ito nang manu-mano sa pamamagitan ng tool sa dulo ng seksyon.
Halimbawa
Isaalang-alang ang isang halimbawang query para sa isang Google Spreadsheet (Tandaan na ang mga column ID ay palaging mga titik. Ang mga pangalan ng column ay hindi mga identifier kapag nag-publish. Ang mga Column ID ay dapat gamitin sa query)
Pagkatapos ng pag-encode, magiging ganito ang kahilingan:
piliin ang%20A%2C%20sum(B)%20group%20by%20A
Ipagpalagay natin na ang address ng Data Table ay ang sumusunod:
http://spreadsheets.google.com/a/google.com/tq?key=ABCDE
Pagdaragdag ng Parameter ng Query &tq=YOUR_QUERY_STRING sa link sa Table at kunin ang natapos na string ng query
http://spreadsheets.google.com.ph/a/google.com/tq?key=ABCDE&tq=select%A%2C%20sum(B)%20group%20by%20A

Syntax ng wika

Pagsusuri

Ang wika ng tanong ko ay halos kapareho sa SQL. Gayunpaman, mayroong ilang mga tampok na kailangang isaalang-alang.
talaan ng mga impormasyon
Ang dokumentong ito ay naglalaman ng konsepto ng "Data Table" upang sumangguni sa mga resulta ng isang query. Ang talahanayan ay binubuo ng mga row at column. Ang bawat column ay may mga sumusunod na katangian:
  • Identifier (o column ID). Ginagamit upang sumangguni sa mga hanay ng Talahanayan. Tandaan na kailangan mo lang sumangguni sa isang column ayon sa ID nito. Trick: subukang huwag gumamit ng mga puwang sa mga identifier, maaari itong maging sanhi ng mga kahirapan sa pag-edit ng query. Gayundin, ang lahat ng mga identifier na may mga puwang ay dapat na nakapaloob sa mga back quotes.
  • Label. Ito ang string na karaniwang ipinapakita sa mga end user. Halimbawa, isang alamat sa isang pie chart o isang pamagat ng tsart ng talahanayan. Hindi naaangkop para sa QUERY() function sa Google Sheets.
  • Uri ng data. Ang mga sumusunod na uri ng data ay sinusuportahan: string (string), numero (number), boolean type (boolean), petsa (petsa), petsa at oras (datetime), oras (timeofday). Ang lahat ng mga value sa isang column ay magkakaroon ng data type ng column na iyon, o null. Ang mga uri ng data na ito ay halos kapareho sa mga nasa JavaScript, hindi magkapareho. Inilalarawan ang mga ito sa seksyong Literal.
  • Mga pattern ng pag-format. Maaaring suportahan ng mga talahanayan ng data ang mga pattern ng pag-format para sa lahat o ilan sa mga column. Inilalarawan ang mga ito sa seksyong Pag-format.
Data table na ginamit sa lahat ng halimbawa
Ang mga halimbawa sa dokumentong ito ay gumagamit ng talahanayan na may sumusunod na data at mga uri ng column:
pangalan
string
departamento
string
oras ng tanghalian
oras ng araw

suweldo
numero

hireDate
petsa
edad
numero
aySenior
boolean
seniorityStartTime
datetime
John Sinabi ni Eng 12:00:00 2005-03-19 35 totoo 2007-12-02 15:56:00
Dave Sinabi ni Eng 12:00:00 2006-04-19 27 mali wala
Sally Sinabi ni Eng 13:00:00 2005-10-10 30 mali wala
Ben Benta 12:00:00 2002-10-10 32 totoo 2005-03-09 12:30:00
Dana Benta 12:00:00 2004-09-08 25 mali wala
Mike Marketing 13:00:00 2005-01-10 24 totoo 2007-12-30 14:40:00

Mga operator ng wika

Ang wika ng query ay binubuo ng sumusunod na isa o dalawang salita na pahayag. Dapat sundin ng mga operator ang isa't isa sa pagkakasunud-sunod ng paglitaw nila sa talahanayan:
Operator Paggamit
pumili Pinipili kung aling mga column ang ibabalik at sa anong pagkakasunud-sunod. Kung aalisin ang operator, ibabalik ang lahat ng column ng talahanayan.
Ibinabalik lamang ang mga row ng talahanayan na tumutugma sa kundisyon. Kung ang operator ay tinanggal, ang lahat ng mga hilera ng talahanayan ay ibabalik.
pangkat sa pamamagitan ng Ipangkat ang mga halaga ayon sa hilera.
pivot Kino-convert ang mga natatanging halaga sa mga column sa mga bagong column tulad ng pivot table.
Iniutos ni Pinagbukud-bukod ang mga hilera batay sa mga halaga.
limitasyon Itinatakda ang limitasyon ng mga row na ibabalik.
offset Nilaktawan ang tinukoy na bilang ng mga linya mula sa output.
label Nagtatakda ng mga label para sa mga column.
pormat I-format ang mga halaga sa ibinigay na mga column ayon sa mga pattern ng pag-format.
mga pagpipilian Nagtatakda ng mga karagdagang opsyon.
mula sa Ang mula sa operator ay hindi ginagamit.
Pumili
Tinutukoy ng piling pahayag kung aling mga column ang dapat ibalik at sa anong pagkakasunud-sunod. Kung ang operator ay hindi tinukoy, o piliin ang * ay tinukoy, ang lahat ng mga column ng talahanayan ay ibabalik sa kanilang orihinal na pagkakasunud-sunod. Maaaring i-reference ang mga column sa pamamagitan ng mga identifier, ngunit hindi sa pamamagitan ng mga label. Ang mga identifier sa Google Sheets ay isa o dalawang titik na pangalan ng column (A, B, C, ..., AC, ... , DC, ...).
Ang mga parameter ng operator ay maaaring mga column identifier, aggregate function, scalar function, o arithmetic operator.
Mga halimbawa:
piliin *
piliin ang dept, suweldo
piliin ang max (suweldo)
email addresspetsa):

Nakukuha namin ang resulta:
oras ng tanghalian pangalan
12:00:00 John
12:00:00 Dave
13:00:00 Sally
12:00:00 Ben
12:00:00 Dana
13:00:00 Mike
Ang kung saan ang pahayag ay ginagamit upang ibalik lamang ang mga hilera na nakakatugon sa mga kundisyon.
Ang mga simpleng operator ng paghahambing ay ginagamit upang ilarawan ang mga kondisyon<=, <, >, >=, =, !=, <>. Parehong operator!=,<>ibig sabihin hindi pantay. Ang mga string ay inihambing sa pamamagitan ng kanilang lexicographic na halaga. Tandaan, ang pagkakapantay-pantay ay sinusuri sa pamamagitan ng = operator, at hindi sa pamamagitan ng == tulad ng sa maraming wika. Ang paghahambing sa null ay ginagawa sa pamamagitan ng is null at hindi null . Kapag gumagamit ng QUERY() sa Google Spreadsheets, kadalasan ang string field ay may walang laman na value na "" , hindi null .
Maaari mong pagsamahin ang maraming kundisyon gamit ang mga lohikal na operator at, o, hindi . Ginagamit ang mga panaklong upang tukuyin ang tahasang pangunguna.

Ang where clause ay gumagamit din ng mga karagdagang operator para sa mas kumplikadong paghahambing ng string. Ang mga operator na ito ay kumukuha ng dalawang argumento, na dapat ay mga string, anumang hindi string na argumento (petsa, numero) ay iko-convert sa string bago ang paghahambing. Ang paghahambing ay case-sensitive (upang maayos ang feature na ito, gamitin ang scalar functions upper(), lower()).
naglalaman ng - substring na tugma. Magbabalik ng true ang expression kung ang bahagi ng string ay ganap na tumutugma sa ibinigay na argumento - isang substring. Halimbawa, kung saan ang pangalan ay naglalaman ng "John" ay babalik "John", "John Adams", "Long John Silver" pero hindi "john adams".

Mga halimbawa:
piliin *
piliin ang dept, suweldo
piliin ang max (suweldo)
Ipinapakita ng sumusunod na halimbawa ang paggamit ng mga sanggunian sa mga identifier na may mga puwang ( email address) at sa mga identifier na tumutugma sa mga pangalan ng mga nakalaan na salita ( petsa):
piliin ang `email address`, pangalan, `petsa`
Ilapat natin ang sumusunod na query sa halimbawang talahanayan:
Nakukuha namin ang resulta:
oras ng tanghalian pangalan
12:00:00 John
12:00:00 Dave
13:00:00 Sally
12:00:00 Ben
12:00:00 Dana
13:00:00 Mike

Sa artikulong ito, matututuhan natin magpadala ng mga query sa database sa pamamagitan ng PHP. Napakahalaga ng artikulong ito at kailangan mong maunawaan ito. Gayunpaman, sisiguraduhin ko sa iyo - ang materyal ay napaka-simple, kaya dapat walang mga paghihirap.

Bago lumipat sa paksa ng artikulo, binabalaan kita nang maaga na hindi ko susuriin nang detalyado wika ng SQL. Ang lahat ng kinakailangang impormasyon ay pinagsunod-sunod sa kategoryang nakatuon sa, at dito lang kami nagtatrabaho sa MySQL sa pamamagitan ng PHP.

Ngayon ay lumipat tayo sa pagpapadala ng mga query sa database sa PHP:


}
$mysqli->query("INSERT INTO mytable (pangalan, email) VALUES ("MyName", " [email protected]")");
$mysqli->close();
?>

Sa halimbawang ito, nakakonekta kami sa database, nasuri na matagumpay ang koneksyon, nagpadala ng kahilingan gamit ang pamamaraan tanong(), at pagkatapos ay isinara ang koneksyon. Tulad ng nakikita mo, ang lahat ay napaka-simple. Upang magpadala ng anuman Mga query sa SQL isang paraan lang ay sapat na - tanong(), kaya sa kasong ito ang lahat ay sobrang simple.

Ngayon pasimplehin natin ng kaunti ang gawain. Tingnan natin ang mga tanong na bumabalik resulta_set- resulta. Pinakatanyag na query na bumabalik resulta_set ay isang seleksyon ng data mula sa isang talahanayan. Sa sumusunod na halimbawa, gagawa kami ng seleksyon ng data, at pagkatapos ay ipapakita ang resulta:

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
kung (mysqli_connect_errno()) (
echo "Nabigo ang koneksyon: ".mysqli_connect_error();
}
$result_set = $mysqli->
habang ($row = $result_set->fetch_assoc()) (
print_r($row);
echo"
";
}
$result_set->close();
$mysqli->close();
?>

Una, hayaan mo akong ipaliwanag nang kaunti kung ano ito. resulta_set. resulta_set ay isang talahanayan na may resulta. Ang talahanayang ito ay may isang hanay ng mga talaan (mga hilera ng talahanayan). At upang ipakita ang lahat ng mga tala, kailangan mong umulit sa bawat hilera ng talahanayan at ipakita ito. At ngayon ipinapaliwanag ko ang isang halimbawa: pagkatapos magpadala ng isang kahilingan, bumubuo kami resulta_set. Pagkatapos ay nagtalaga kami sa isang variable sa isang loop hilera ang halaga ng susunod na row, iyon ay, isang one-dimensional array na ibinabalik ng pamamaraan fetch_assoc(). Kapag ang lahat ng mga linya ay tapos na, ang pamamaraan fetch_assoc() babalik mali, at lalabas ang loop. Sa loob ng loop habang output lang namin ang array gamit ang debug function print_r(), bagama't tiyak na mahihinuha gamit ang foreach ngunit hindi ito kailangan ngayon.

Isa-ikli natin kung paano gumawa ng resulta_set:

  1. Kunin resulta_set sa pamamagitan ng pagpapadala ng naaangkop na query sa database.
  2. Sa loop, sa bawat pag-ulit, italaga ang susunod na linya (record) mula sa resulta_set gamit ang pamamaraan fetch_assoc() ilang variable hilera. Pagkatapos ay maaari kang magtrabaho kasama ang variable na ito tulad ng sa isang one-dimensional na associative array, na ang mga susi ay ang mga pangalan ng mga field ng talahanayan, at ang mga halaga ay tumutugma sa kasalukuyang talaan.
  3. Tiyaking isara resulta_set paraan malapit () upang galugarin ang mga mapagkukunan.

Tulad ng nakikita mo, ang pamamaraan fetch_assoc() ibinabalik palagi ang susunod na record. Iyon ay, una ang 1st, pagkatapos ay ang 2nd, pagkatapos ay ang 3rd at iba pa. Kung mayroon kang mahusay na karanasan sa programming, pagkatapos ay mahulaan mo kaagad na ito ay dahil sa panloob na pointer, na maaari mong, siyempre, ilipat. Saan ito ginagamit? Halimbawa, maaari itong gamitin kapag kailangan mong magtrabaho kasama resulta_set Hindi 1 , A 2 at mas maraming beses. Upang hindi muling mabuo ang parehong kahilingan, maaari mo lamang ilipat ang pointer sa simula. At pagkatapos ay maaari mo itong gawin muli resulta_set gamit ang fetch_assoc() na paraan.

Mayroong isang paraan upang baguhin ang posisyon ng pointer data_seek(), na kumukuha ng integer mula sa 0 bago" bilang ng mga entry - 1", ayon sa pagkakabanggit, ang pointer ay tumataas sa entry na naaayon sa parameter:

$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
kung (mysqli_connect_errno()) (
echo "Nabigo ang koneksyon: ".mysqli_connect_error();
}
$result_set = $mysqli->query("SELECT * FROM mytable");
$result_set->num_rows;
habang ($row = $result_set->fetch_assoc()) (
print_r($row);
echo"
";
}
$result_set->data_seek(0);
habang ($row = $result_set->fetch_assoc()) (
print_r($row);
echo"
";
}
$result_set->close();
$mysqli->close();
?>

Sa halimbawang ito, kinuha namin bilang ng mga entry sa result_set gamit ang ari-arian num_rows. Nakilala rin namin ang pamamaraan data_seek(). Iyon ay, inuulit namin ang buong resulta, pagkatapos ay ibabalik ang isang pointer sa ika-0 itala at muling inayos ang resulta.

Sa artikulong ito, inulit namin ang koneksyon sa database at isinara ang koneksyon. At nalaman din paano magpadala ng mga query sa database sa pamamagitan ng php. natutunan, paano makakuha ng result_set at kung paano ito gagawin. Iyon lang ang kailangan mong malaman para maging matagumpay nagtatrabaho sa MySQL sa PHP.

Sa palagay ko narinig na ng lahat ang tuntunin ng Pareto. Sa anumang larangan, 20% ng mga pagsisikap ay nagbibigay ng 80% ng mga resulta. Halimbawa, 20% ng iyong wardrobe ang isinusuot mo sa 80% ng oras, 20% ng iyong mga customer ang nagdadala ng 80% ng kita. Ito ay pareho sa Google Sheets: alam ang 20% ​​ng mga umiiral na function, maaari mong malutas ang 80% ng lahat ng posibleng mga gawain.

Itinuturing kong isa ang Query sa mga pinakakapaki-pakinabang na feature ng Google Sheets. Ngunit sa tulong ng Google, ito ay inilarawan nang napakababaw, at ang buong kapangyarihan ng pagpapaandar na ito ay hindi isiniwalat. Sa isang mas detalyadong kakilala, nagiging malinaw na nagagawa nitong palitan ang karamihan sa mga umiiral na function.

Upang gumana sa QUERY kakailanganin mo ng pangunahing kaalaman sa SQL. Para sa mga hindi nakakaalam, huwag matakot, ang QUERY function ay talagang sumusuporta sa pinakapangunahing mga tampok ng SQL.

QUERY Syntax

QUERY(data; query; [mga header])
  • datos ay isang hanay ng mga cell na magsisilbing database para sa SQL query;
  • hiling— Teksto ng query sa SQL;
  • mga headline ay isang opsyonal na argumento kung saan maaari mong tukuyin kung gaano karaming mga unang hilera ng array ang naglalaman ng mga header.

Para sa maximum na perception ng karagdagang impormasyon, iminumungkahi kong buksan at kopyahin ang sumusunod na Google Spreadsheet

Mayroong ilang mga sheet sa dox na kakagawa mo lang ng kopya. Ang DB sheet ay ang database na aming ia-access gamit ang QUERY function. Ang mga Level sheet ay naglalaman ng mga halimbawang titingnan natin sa artikulong ito. Sa bawat bagong antas, ang halimbawa ay magiging mas mahirap.

SQL query plan sa Query function

Ang anumang query sa SQL ay binubuo ng hiwalay na mga bloke, na kadalasang tinatawag na mga paninirang-puri. Ang SQL para sa Query function ay batay sa Google Visualization API Query Language syntax, na sumusuporta sa mga sumusunod na clause:

  • pumili- enumeration ng mga field na ibabalik ng query;
  • saan— naglalaman ng isang listahan ng mga kundisyon kung saan ang data array na naproseso ng kahilingan ay sasalain;
  • pangkat sa pamamagitan ng- naglalaman ng isang listahan ng mga patlang kung saan nais mong pangkatin ang resulta;
  • pivot- tumutulong sa pagbuo ng mga cross table, gamit ang halaga ng isang column bilang mga pangalan ng column ng final table;
  • Iniutos ni- responsable para sa pag-uuri ng mga resulta;
  • limitasyon- gamit ang bahaging ito ng query, maaari kang magtakda ng limitasyon sa bilang ng mga row na ibinalik ng query;
  • offset- gamit ang paninirang-puri na ito, maaari mong itakda ang bilang ng mga unang hilera na hindi kailangang iproseso ng kahilingan;
  • label- ang paninirang-puri na ito ay responsable para sa pangalan ng mga patlang na ibinalik ng kahilingan;
  • pormat— ay responsable para sa format ng data ng output;
  • mga pagpipilian - nagbibigay-daan sa iyo na magtakda ng mga karagdagang parameter para sa output ng data.

Hello World para sa Query (Piliin) function

Pumunta tayo sa Level_1 sheet at tingnan ang formula sa cell A1.

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

Bahagi ng formula" DB!A1:L1143" ay responsable para sa database kung saan gagawa kami ng pagpili. Ikalawang bahagi" piliin ang * limit 100» naglalaman ng mismong text ng kahilingan. Ang simbolo na "*" sa kasong ito ay nangangahulugang ibalik ang lahat ng mga patlang na nakapaloob sa database. Sa pamamagitan ng paggamit ng " limitasyon 100» nililimitahan namin ang output sa maximum na 100 row. Ito ay isang halimbawa ng pinakasimpleng kahilingan. Pinili namin ang unang 100 row mula sa database. Ito ay uri ng "Hello world" para sa Query function.

Paggamit ng mga filter at pag-uuri (Saan, Pag-order ayon sa)

Pumunta sa sheet Level_2. Piliin lamang natin ang ilan sa mga field na kailangan natin at itakda ang mga kundisyon sa pag-filter at pag-uuri. Halimbawa, gumagamit lang kami ng data para sa mga campaign na Campaign_1 at Campaign_2 para sa panahon ng Oktubre 22-25, 2015. Pagbukud-bukurin natin ang mga ito sa pababang pagkakasunud-sunod ayon sa kabuuan ng mga session. Para sa pag-filter at pag-uuri, kailangan mong magdagdag ng isang paglalarawan ng paninirang-puri sa teksto ng query saan At utos. Upang ipakita ang halimbawang inilarawan sa itaas sa resultang talahanayan, kailangan namin ang mga field ng Campaign, Petsa, at Mga Session. Sila ang kailangang mailista sa paninirang-puri Pumili.

Ang mga patlang ng database ay ina-access sa pamamagitan ng mga pangalan ng hanay ng worksheet kung saan matatagpuan ang database.

Sa aming kaso, ang data na matatagpuan sa DB sheet at access sa ilang partikular na field ay nakasulat bilang pangalan ng mga column ng sheet. Kaya, ang mga kinakailangang field ay matatagpuan sa mga sumusunod na column:

  • patlang Petsa- hanay A;
  • patlang Kampanya- hanay B;
  • patlang mga session- hanay G.

Alinsunod dito, ang bahagi ng query na responsable para sa listahan ng output ng data bilang resulta ay magiging ganito:

Piliin ang A, B, G

Ang susunod sa kahilingan ay paninirang-puri saan. Kapag nagsusulat ng isang kahilingan, ang paninirang-puri ay dapat ilagay sa pagkakasunud-sunod kung saan sila ay inilarawan sa unang seksyon ng artikulong ito. Pagkatapos ng anunsyo saan kailangan nating ilista ang mga kundisyon ng filter. Sa kasong ito, sinasala namin ang data ayon sa pangalan ng kampanya (Kampanya) at petsa (Petsa). Gumagamit kami ng ilang kundisyon ng filter. Sa text ng query, sa pagitan ng lahat ng kundisyon ay dapat mayroong lohikal na operator O o AT. Ang pag-filter ng petsa ay medyo naiiba sa numeric at pag-filter ng teksto at nangangailangan ng paggamit ng operator ng Petsa. Ang bahagi ng query na responsable para sa pag-filter ng data ay magiging ganito:

SAAN (A >= petsa"2015-10-22" AT A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")

Gamit ang mga panaklong, hinati namin ang pag-filter ng data sa dalawang lohikal na bahagi: ang una ay nagsasala ayon sa petsa, ang pangalawa ay ayon sa pangalan ng kampanya. Sa yugtong ito, ang formula na naglalarawan sa data na pipiliin at ang mga kundisyon para sa pag-filter ng data ay ganito ang hitsura:

Query(DB!A1:L1143;" Piliin ang A, B, G SAAN (A >= petsa"2015-10-22" AT A<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")")

Maaari mong kopyahin at i-paste ito, halimbawa, sa isang bagong sheet ng dokumento na ginamit bilang isang halimbawa sa post na ito, at makukuha mo ang sumusunod na resulta:

Bilang karagdagan sa karaniwang mga lohikal na operator (=,<, >) ang WHERE block ay sumusuporta sa mga karagdagang filtering operator:

  • naglalaman ng— sinusuri ang nilalaman ng ilang mga character sa isang string. Halimbawa, WHERE A naglalaman ng 'John' ay babalik sa filter ang lahat ng mga halaga mula sa column A na naglalaman ng John, halimbawa, John Adams, Long John Silver;
  • nagsisimula sa- sinasala ang mga halaga sa pamamagitan ng prefix, iyon ay, sinusuri nito ang mga character sa simula ng string. Halimbawa, nagsisimula sa 'en' ay magbabalik ng engineering at ingles;
  • nagtatapos sa- sinasala ang mga halaga sa dulo ng string. Halimbawa, ang linya 'koboy ' ay ibabalik ng construct na "nagtatapos sa 'batang lalaki'" o "nagtatapos sa 'y'";
  • mga posporo— tumutugma sa isang regular na expression. Halimbawa: kung saan tugma '.*ia ' ay babalik sa India at Nigeria.
  • gaya ng - isang pinasimpleng bersyon ng mga regular na expression na tumutugma sa isang string laban sa isang ibinigay na expression gamit ang mga wildcard. Kasalukuyang sinusuportahan ng Like ang dalawang wildcard na character: "%" ay nangangahulugang anumang bilang ng anumang mga character sa string, at "_" ay nangangahulugang anumang solong character. Halimbawa, "kung saan ang pangalan tulad ng 'fre%'" ay tutugma sa mga string 'libre ’, 'fred ', at 'freddy ’.

Na-filter na ng query ang data para sa isang partikular na panahon at iniwan lamang ang mga campaign na kailangan namin. Ito ay nananatiling lamang upang ayusin ang resulta sa pababang pagkakasunud-sunod depende sa bilang ng mga session. Tradisyonal na isinasagawa ang pag-uuri sa mga query na ito para sa SQL gamit ang paninirang-puri Iniutos ni. Ang syntax ay medyo simple: kailangan mo lamang ilista ang mga patlang kung saan nais mong pag-uri-uriin ang resulta, pati na rin tukuyin ang pagkakasunud-sunod ng pag-uuri. Bilang default, ang order ay asc, iyon ay, pataas. Kung tinukoy mo ang parameter ng desc pagkatapos ng pangalan ng field, ibabalik ng query ang resulta sa pababang pagkakasunud-sunod na tinukoy sa paninirang-puri Iniutos ni mga patlang.

Sa aming kaso, ang linya sa teksto ng kahilingan ay magiging responsable para sa pag-filter:

Utos ni G desc

Alinsunod dito, ang huling resulta ng formula sa sheet ng Level_2, na lumulutas sa problemang kailangan natin, ay ganito ang hitsura:

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

Magagamit mo na ngayon ang pinakasimpleng SQL syntax at ang QUERY function upang i-filter at ayusin ang data.

mapagkukunan mysql_query(string query [, resource link_identifier])

mysql_query() nagpapadala ng query sa aktibong database ng server na itinuro ng ipinasang pointer. Kung ang link_identifier ay tinanggal, ang huling bukas na koneksyon ay ginagamit. Kung walang bukas na koneksyon, sinusubukan ng function na kumonekta sa DBMS, katulad ng function mysql_connect() walang mga parameter. Ang resulta ng query ay buffered.

Komento: HINDI dapat magtapos sa semicolon ang query string.

Para lamang sa mga query na PUMILI, IPAKITA, Ipaliwanag, Ilarawan, mysql_query() nagbabalik ng pointer sa resulta ng query, o MALI kung hindi nakumpleto ang kahilingan.
Sa ibang mga kaso (INSERT, UPDATE, DELETE, DROP, atbp.), mysql_query() nagbabalik TOTOO sa kaso ng isang matagumpay na kahilingan at MALI sa kaso ng pagkakamali. Hindi pantay ang halaga MALI ay nagpapahiwatig na ang kahilingan ay matagumpay na nakumpleto. Hindi nito binabanggit ang bilang ng mga apektado o ibinalik na row. Ito ay lubos na posible na ang isang matagumpay na kahilingan ay hindi makakaapekto sa alinman sa mga hilera.

Ang sumusunod na query ay hindi maayos na nabuo at mysql_query() babalik MALI :

mysql_query() ay itinuturing ding isang error at babalik MALI, kung wala kang sapat na mga karapatan upang gumana sa talahanayan na tinukoy sa kahilingan.

Kapag nagtatrabaho sa mga resulta ng query, maaari mong gamitin ang function mysql_num_rows() upang mahanap ang bilang ng mga row na ibinalik ng SELECT query, o mysql_affected_rows() upang mahanap ang bilang ng mga row na naproseso sa pamamagitan ng DELETE, INSERT, REPLACE, o UPDATE na mga query.

Para lamang sa SELECT, SHOW, DESCRIBE, EXPLAIN query, function mysql_query() nagbabalik ng pointer sa resulta na maaaring magamit sa isang function mysql_fetch_array() at iba pang mga function na gumagana sa mga resulta ng query. Kapag tapos ka na sa resulta, maaari mong ilabas ang mga mapagkukunang ginamit upang iimbak ito gamit ang function



Inirerekomenda namin ang pagbabasa

Nangunguna