Mysql qatorlarini sozlash.

Kontaktlar / Zaxist

topshirish Golovna Muallifning fikri: Do'stlarimdan biri Santa Klaus uxlab yotganini tasdiqlaydi.

Shundan so'ng, u xuddi kichik o'g'li kabi, ishondi

Yangi daryo

10 kg shokoladli tsukerki taqdim etdi.

Endi, kelgusi taqdirda siz Santa Klausdan oilangizning barcha a'zolari uchun to'ldirishni so'rashingiz kerak bo'ladi! Yaxshiyamki, veb-dastur uni bunday nomuvofiqliklarga qarshi xavfsiz o'ynashi va kelajakda MySQL-dagi qatorlar sonidan foydalanishi mumkin. Siz nimani bilasiz, qancha?

Har qanday jadval yuzlab qator va qatorlardan iborat.

Ma'lumotlar bazasidagi tejamkorlik miqdori har bir jadvalda qancha qator borligiga bog'liq.

Bu ilgari ovqatlangan tsukerok tufayli odamning tishlaridagi teshiklar soniga o'xshaydi.

Aniqrog‘i, farzandingiz Yangi daryoda “ehson qilingan” solodkorlarning iflosligidan.

Ko'p sonli qatorlarga qaramay, bu aniq

MySQL ma'lumotlar bazasi

Siz kompaniyaning muhrini ololmaysiz, ammo shunga qaramay, ushbu parametrni bilish saytingiz ishini optimallashtirishda, ma'lum skriptlarni ishga tushirishda va hokazolarda kerak bo'lishi mumkin.

COUNT() funktsiyasi bir qator qatorlarni aylantiradi.

Amalga oshirilgan SQL funktsiyasidan foydalangan holda.

Shunga qaramay, ma'lumotlar bazasidan katta jadvaldagi yozuvlar sonini aniqlash mumkin, ularning skrinshoti yuqorida ko'rsatilgan.

Kod quyidagicha bo'ladi:

“mamlakat” dan COUNT(*) TANI TANLASH

'mamlakat' dan COUNT (*) TANLANING

Mamlakat jadvalida jami 239 ta yozuv mavjud!

Tushunarli, ular uchun barmoqlar yoki oyoq barmoqlarini kiymaslik kerak (chunki boshqa odamlar yoki mavjudotlarning uchlarini buzmaslik kerak).

Ko'rib turganingizdek, bir nechta satrlarni yangilashning ushbu MySQL usuli ancha aniqroq va eng ko'p tuzatilishi mumkin.

Lekin bu funksiya bundan kam emas! Masalan, ushbu yordam yordamida siz Evropada mamlakatlar ma'lumotlar bazasida qancha "vakillik" borligini bilib olishingiz mumkin: Va jadvalda terining chetini necha marta taxmin qilish mumkin?

Men bir misol so'rayman:

`Ism`, COUNT(*) `mamlakat` GURUHIDAN `ISM` BO`YICHA TANLANING

TANGLASH ` Ism ` , COUNT ( * ) FROM ` mamlakat ` GROUP BY ` Ism `

Ushbu yordam yordamida biz MySQL-ning bir qator qatorlarini topdik, ularda qirralarning terisini taxmin qilish mumkin.

Vikonannining natijalaridan siz bir vaqtning o'zida buni ko'rishingiz mumkin.

Esdan chiqarmasdan!

Agar siz hali dunyo ma'lumotlar bazasiga ega bo'lmasangiz, bugungi kunda biz qilayotgan ishlarga ko'ra, siz ushbu xabarlarni distribyutorlarning rasmiy veb-saytidan kuzatib borishingiz mumkin.

MySQL DBMS

Iltimos, esda tutingki, bosishdan oldin funktsiyani tanlashda "*" belgisini barcha variantlar nomi bilan almashtiring.

Bu MySQL funksiyalaridan foydalanganda maxsus sintaksis.

PHP-dagi yozuvlar soni Ko'pincha kod saytlarida PHP MySQL

Keyinchalik qayta ishlash uchun kirish parametri sifatida qiymatni o'tkazish uchun bir qator qatorlarni olib tashlash kerak.

Siz quyidagi qo'shimcha koddan foydalanishingiz mumkin:

query("SELECT * FROM `mamlakat`")) ( printf("Jadvalda %d ta satr bor\n", $result->num_rows); $result->close(); ) mysqli_close($con);

?>

Go'yo men bu vazifalarga qoqilgandekman, lekin ular menga Internetda e'lon qilinganlardan hech qanday yechim bermadilar.

Va shunga qaramay, men chiqish yo'lini bilaman.

Va men yolg'iz emasman.

1-usul. phpMyAdmin

Keling, buni eng oddiy va eng ravshanidan olaylik.

Aytaylik, natijalarni koddan chiqarib olishning hojati yo'q, lekin qancha qator borligini bilib oling, hammasi shu.

Keyin biz phpMyAdmin (localhost/tools/phpmyadmin - Denver uchun) ga o'tamiz, so'ngra kerakli ma'lumotlar bazasini tanlaymiz, shundan so'ng biz jadvalni, qancha qatorni ro'yxatdan o'tkazishimiz kerakligini, shuningdek quyidagi ma'lumotlarni tanlaymiz:

2-usul. COUNT

SQL so'rovining o'zida eksa shunday ko'rinadi:

SQL zudlik bilan: PHP da amalga oshirish: Shunday qilib, siz bu erda ba'zi miyalarni qo'shishingiz mumkin. Ushbu kod jadvaldagi ongni ko'rsatadigan qatorlar sonini ko'rsatadi. 3-usul. mysql_num_rows

Masalan, WordPress postlari wp_posts jadvalida saqlanadi, shu tarzda biz ma'lumotlar bazasida (MySQL jadvali) qancha postlar (xabarlar) saqlanganligini bilib olamiz.

Ushbu kod, masalan, faqat (yoki WordPress yadrosi qo'llab-quvvatlanmasa) berilgan, chunki WordPress ma'lumotlar bazasiga ulanish sinf orqali amalga oshiriladi.




Natija barcha yozuvlarni o'z ichiga oladi.

Shunday qilib, siz har safar SELECT SQL_CALC_FOUND_ROWS yozganingizda, ma'lumotlar bazasi tizimi aqliy so'rovga mos keladigan ko'p sonli qatorlarni saqlaydi va bu raqamni xotirada saqlaydi.

Albatta, SQL_CALC_FOUND_ROWS ni faqat o'zgaruvchan chegara qo'llanilganda (LIMIT) SELECT so'rashi mumkin.

Tanlovni tugatgandan so'ng darhol yozuvlar sonini o'chirish uchun boshqa SELECT so'rovini kiritishingiz kerak bo'ladi: SELECT FOUND_ROWS ();
Natijada, MySQL bir qatorni bitta maydon bilan aylantiradi, bu qatorlar sonini saqlaydi.

So'rovlarning o'ziga misol:

> SQL_CALC_FOUND_ROWS * FROM tbl_name WHERE raqami > 100 LIMIT 10;

> FOUND_ROWS ();
Birinchisi tbl_name jadvalining 10 qatorini aylantiradi, buning uchun > 100 raqami qo'shiladi SELECT buyrug'ining ikkinchi buyrug'i LIMIT ifodasisiz yozilganligi sababli birinchi SELECT buyrug'i aylanadigan qatorlar sonini aylantiradi.
{
Agar siz SELECT SQL_CALC_FOUND_ROWS buyrug'idan foydalansangiz, MySQL natijalar to'plamidagi barcha qatorlarni qayta tartiblashi kerak, bu usul LIMITsiz bir xil, shuning uchun natijani mijozga majburlash shart emas.
}

PHP so'rovlariga misol:
$natija = mysql_query("SELECT SQL_CALC_FOUND_ROWS * FROM 1-jadval LIMIT 0, 10", $link);
esa ($ qator = mysql_fetch_assoc ($ natija))

var_dump($ qator);

$natija = mysql_query("SELECT FOUND_ROWS()", $link);

$num_rows = mysql_result($natija, 0);

  • echo "$num_rows Qatorlar\n";
  • DBMS ulanish ekranida $link ko'rsatadigan kodni tushunish natijasida PHP jadval jadvalidan 10 satrni, so'ngra so'rovga mos keladigan satrlarning butun sonini (LIMIT o'rnatmasdan) ko'rsatadi.
  • UNION SQL_CALC_FOUND_ROWS so'rovlarida LIMIT ko'p joylarda paydo bo'lishi mumkin bo'lgan ikkita usulda harakat qilishingiz mumkin.

Qatorni joylashtirish individual SELECT so'rovlari uchun yoki jamlangandan keyin barcha so'rovlar uchun amalga oshirilishi mumkin. UNION uchun SQL_CALC_FOUND_ROWS maqsadi global LIMITsiz aylantirilishi mumkin bo'lgan qatorlarni aylantirish uchun javobgardir. UNION bilan SQL_CALC_FOUND_ROWS ma'nosi quyida ko'rsatilgan:

COUNT() funksiyasi berilgan mezonga javob beradigan jadvaldagi yozuvlar sonini aylantiradi.

COUNT(expr) funksiyasi har doim ifoda natijasi NULL EMAS bo'lgan qatorlarni hisobga oladi.

Ushbu qoida bilan bog'liq muammo shundaki, COUNT() funktsiyasi yulduzni argument sifatida ishlatadi - COUNT(*) .

Bunday holda, barcha qatorlar NULL yoki NO NULL bo'lishidan qat'i nazar, hisobga olinadi.

Masalan, COUNT(*) funksiyasi jadvaldagi yozuvlarning umumiy sonini aylantiradi:

Jadval_nomidan COUNT(*) TANI TANlang

Ko'p sonli yozuvlarni qanday saqlash va ularni ekranda ko'rsatish

Satrlar sonini yangilash va ko'rsatish uchun PHP+MySQL kodiga misol:

$res = mysql_query("Jadval_nomidan COUNT(*) TANLASH") $satr = mysql_fetch_row($res);

$jami = $satr;

// jami yozuvlar echo $ jami;

?>

Ushbu misol COUNT() funksiyasining eng oddiy versiyasini ko'rsatadi.

Shu bilan bir qatorda, ushbu funktsiyaga boshqa sozlamalar qo'shilishi mumkin.

Jadval ustunini parametr sifatida belgilab, COUNT(ustun_nomi) funksiyasi NULL qiymatini almashtirish uchun ushbu ustundagi yozuvlar sonini aylantiradi.

Sayt haqida ma'lumot