Mysql
 sql >> база данни >  >> RDS >> Mysql

Как работи функцията MATCH() в MySQL

В MySQL, MATCH() функцията извършва търсене в пълен текст. Той приема разделен със запетая списък с колони в таблицата, които трябва да се търсят.

Таблицата/ите трябва да имат ПЪЛЕН ТЕКСТ индексирайте, преди да можете да извършите пълнотекстово търсене срещу тях (въпреки че булеви заявки срещу MyISAM Индексът за търсене може да работи — макар и бавно — дори без ПЪЛЕН ТЕКСТ индекс).

Можете да създадете ПЪЛЕН ТЕКСТ индекс при създаване на таблицата (с помощта на CREATE TABLE изявление), или можете да използвате ALTER TABLE оператор или CREATE INDEX изявление, ако таблицата вече съществува.

По подразбиране търсенето е независимо от главните букви. За да извършите търсене според главните и малки букви, използвайте съпоставяне, чувствително или двоично за индексираните колони.

Синтаксис

Синтаксисът за MATCH() функцията е така:

MATCH (col1,col2,...) AGAINST (expr [search_modifier])

Където col1,col2,... е разделен със запетая списък с колони за търсене и expr е входният низ/израз.

Незадължителният модификатор на_търсене аргумент ви позволява да зададете типа на търсене. Тя може да бъде някоя от следните стойности:

  • В РЕЖИМ НА ПРИРОДЕН ЕЗИК
  • В РЕЖИМ НА ЕСТЕСТВЕН ЕЗИК С РАЗШИРЯВАНЕ НА ЗАЯВКАТА
  • В БУЛЕВ РЕЖИМ
  • С РАЗШИРЯВАНЕ НА ЗАЯВКАТА

Режимът по подразбиране е В РЕЖИМ НА ПРИРОДЕН ЕЗИК .

Пример 1 – Основна употреба

Ето пример как да използвате тази функция:

SELECT AlbumId, AlbumName
FROM Albums
WHERE MATCH(AlbumName) AGAINST('cool');

Резултат:

+---------+--------------------+
| AlbumId | AlbumName          |
+---------+--------------------+
|       5 | Casualties of Cool |
+---------+--------------------+

Ето пълната таблица, срещу която беше изпълнена заявката по-горе:

SELECT AlbumId, AlbumName
FROM Albums;

Резултат:

+---------+--------------------------+
| AlbumId | AlbumName                |
+---------+--------------------------+
|       1 | Powerslave               |
|       2 | Powerage                 |
|       3 | Singing Down the Lane    |
|       4 | Ziltoid the Omniscient   |
|       5 | Casualties of Cool       |
|       6 | Epicloud                 |
|       7 | Somewhere in Time        |
|       8 | Piece of Mind            |
|       9 | Killers                  |
|      10 | No Prayer for the Dying  |
|      11 | No Sound Without Silence |
|      12 | Big Swing Face           |
|      13 | Blue Night               |
|      14 | Eternity                 |
|      15 | Scandinavia              |
|      16 | Long Lost Suitcase       |
|      17 | Praise and Blame         |
|      18 | Along Came Jones         |
|      19 | All Night Wrong          |
|      20 | The Sixteen Men of Tain  |
+---------+--------------------------+

Пример 2 – Грешка:„Не мога да намеря FULLTEXT индекс“

InnoDB таблиците трябва да имат ПЪЛЕН ТЕКСТ индекс, преди да върне резултати от пълнотекстово търсене. Ако няма ПЪЛЕН ТЕКСТ index, вероятно ще получите следната грешка:

ERROR 1191 (HY000): Can't find FULLTEXT index matching the column list

Ако получите тази грешка, ще трябва да добавите ПЪЛЕН ТЕКСТ индекс за всички колони, които се опитвате да търсите (вижте следващия пример).

Изключението от това може да бъде, ако изпълнявате булева заявка срещу MyISAM индекс за търсене.

За да бъдем по-конкретни, документацията на MySQL за булеви търсения в пълен текст гласи следното:

InnoDB таблиците изискват ПЪЛЕН ТЕКСТ индекс на всички колони на MATCH() израз за изпълнение на булеви заявки. Булеви заявки към MyISAM Индексът за търсене може да работи дори без ПЪЛЕН ТЕКСТ индекс, въпреки че търсенето, извършено по този начин, би било доста бавно.

Пример 3 – Добавяне на FULLTEXT индекс към съществуваща таблица

Ето пример за добавяне на ПЪЛЕН ТЕКСТ индекс към съществуваща таблица:

ALTER TABLE Albums  
ADD FULLTEXT(AlbumName);

В този случай индексирах съдържанието на AlbumName колона.

За да индексирате няколко колони, разделете ги със запетая (вижте следващия пример).

Пример 4 – Търсене в множество колони

Ако смятате, че ще трябва да търсите повече от една колона, ще трябва да създадете индекс, който включва всички колони, които да бъдат търсени. За да направите това, просто включете всяка колона като разделен със запетая списък.

Ето пример, в който добавям ПЪЛЕН ТЕКСТ индекс към филма таблица (която е част от примерната база данни на Sakila).

ALTER TABLE film 
ADD FULLTEXT(title, description);

В този случай индексирам съдържанието на title и описание колони.

Сега, когато създадохме ПЪЛЕН ТЕКСТ индекс за двете колони, можем да извършим пълнотекстово търсене срещу тях:

SELECT title, description
FROM film
WHERE MATCH(title, description) AGAINST('vertigo');

Резултат:

+-------------------+-----------------------------------------------------------------------------------------------------------+
| title             | description                                                                                               |
+-------------------+-----------------------------------------------------------------------------------------------------------+
| VERTIGO NORTHWEST | A Unbelieveable Display of a Mad Scientist And a Mad Scientist who must Outgun a Mad Cow in Ancient Japan |
+-------------------+-----------------------------------------------------------------------------------------------------------+

Ето още едно търсене, където точната ключова фраза не съвпада, но всяка ключова дума в тази фраза съвпада:

SELECT title, description
FROM film
WHERE MATCH(title, description) AGAINST('Iron Maiden');

Резултат:

+-------------+---------------------------------------------------------------------------------------------------------+
| title       | description                                                                                             |
+-------------+---------------------------------------------------------------------------------------------------------+
| IRON MOON   | A Fast-Paced Documentary of a Mad Cow And a Boy who must Pursue a Dentist in A Baloon                   |
| MAIDEN HOME | A Lacklusture Saga of a Moose And a Teacher who must Kill a Forensic Psychologist in A MySQL Convention |
+-------------+---------------------------------------------------------------------------------------------------------+

Ако искате само точната фраза да съвпада, поставете около нея двойни кавички:

SELECT title, description
FROM film
WHERE MATCH(title, description) AGAINST('"Iron Maiden"');

Резултат:

Empty set (0.00 sec)

В този случай нито една от колоните не съдържа точно тази фраза.

Пример 5 – Връщане на оценката за уместност

Всеки път, когато използвате MATCH() функция, на всеки ред в таблицата се присвоява стойност за релевантност. С други думи, всеки ред получава оценка, която определя доколко е подходящ за думата за търсене. След това резултатите се подреждат по уместност (първо най-високата релевантност).

Стойностите за уместност са неотрицателни числа с плаваща запетая. Нулева релевантност означава никаква прилика. Уместността се изчислява въз основа на броя на думите в реда (документа), броя на уникалните думи в реда, общия брой думи в колекцията и броя на редовете, които съдържат конкретна дума.

За да върнете уместността на всеки резултат, просто включете MATCH() функция във вашия списък с колони, които да изберете.

Пример:

SELECT 
  MATCH(title, description) AGAINST('Iron Maiden') AS Relevance,
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('Iron Maiden');

Резултат:

+-----------+-------------+---------------------------------------------------------------------------------------------------------+
| Relevance | title       | description                                                                                             |
+-----------+-------------+---------------------------------------------------------------------------------------------------------+
|         9 | IRON MOON   | A Fast-Paced Documentary of a Mad Cow And a Boy who must Pursue a Dentist in A Baloon                   |
|         9 | MAIDEN HOME | A Lacklusture Saga of a Moose And a Teacher who must Kill a Forensic Psychologist in A MySQL Convention |
+-----------+-------------+---------------------------------------------------------------------------------------------------------+

В този случай оценката за релевантност е много висока и за двата реда.

Ето още един, където уместността е по-ниска:

SELECT 
  MATCH(title, description) AGAINST('Saga of a Moose') AS Relevance,
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('Saga of a Moose')
LIMIT 15;

Резултат:

+--------------------+------------------------+---------------------------------------------------------------------------------------------------------+
| Relevance          | title                  | description                                                                                             |
+--------------------+------------------------+---------------------------------------------------------------------------------------------------------+
| 2.4431142807006836 | CAPER MOTIONS          | A Fateful Saga of a Moose And a Car who must Pursue a Woman in A MySQL Convention                       |
| 2.4431142807006836 | DATE SPEED             | A Touching Saga of a Composer And a Moose who must Discover a Dentist in A MySQL Convention             |
| 2.4431142807006836 | DELIVERANCE MULHOLLAND | A Astounding Saga of a Monkey And a Moose who must Conquer a Butler in A Shark Tank                     |
| 2.4431142807006836 | FLASH WARS             | A Astounding Saga of a Moose And a Pastry Chef who must Chase a Student in The Gulf of Mexico           |
| 2.4431142807006836 | HAROLD FRENCH          | A Stunning Saga of a Sumo Wrestler And a Student who must Outrace a Moose in The Sahara Desert          |
| 2.4431142807006836 | MAIDEN HOME            | A Lacklusture Saga of a Moose And a Teacher who must Kill a Forensic Psychologist in A MySQL Convention |
| 2.4431142807006836 | SHANE DARKNESS         | A Action-Packed Saga of a Moose And a Lumberjack who must Find a Woman in Berlin                        |
| 2.4431142807006836 | SLEEPLESS MONSOON      | A Amazing Saga of a Moose And a Pastry Chef who must Escape a Butler in Australia                       |
| 2.4431142807006836 | WAKE JAWS              | A Beautiful Saga of a Feminist And a Composer who must Challenge a Moose in Berlin                      |
| 2.4431142807006836 | WONKA SEA              | A Brilliant Saga of a Boat And a Mad Scientist who must Meet a Moose in Ancient India                   |
| 1.2399028539657593 | AIRPLANE SIERRA        | A Touching Saga of a Hunter And a Butler who must Discover a Butler in A Jet Boat                       |
| 1.2399028539657593 | ALASKA PHANTOM         | A Fanciful Saga of a Hunter And a Pastry Chef who must Vanquish a Boy in Australia                      |
| 1.2399028539657593 | ARMY FLINTSTONES       | A Boring Saga of a Database Administrator And a Womanizer who must Battle a Waitress in Nigeria         |
| 1.2399028539657593 | BEAR GRACELAND         | A Astounding Saga of a Dog And a Boy who must Kill a Teacher in The First Manned Space Station          |
| 1.2399028539657593 | BERETS AGENT           | A Taut Saga of a Crocodile And a Boy who must Overcome a Technical Writer in Ancient China              |
+--------------------+------------------------+---------------------------------------------------------------------------------------------------------+

Имайте предвид, че наборът от резултати щеше да бъде много по-голям, ако не бях използвал LIMIT 15 за да ограничите броя на резултатите до 15.

Пример 6 – Извежда само резултати над определен рейтинг за уместност

Можем да вземем предишния пример една стъпка напред и да филтрираме само тези резултати с определен резултат за релевантност. В този случай уточнявам, че оценката за релевантност трябва да бъде по-висока от 2.

Бъдете внимателни, когато правите това. Както се вижда по-горе, стойностите на уместност могат да бъдат много високи или много ниски, в зависимост от фактори като количество текст в колоната, колко други реда съответстват на думата за търсене и т.н.

SELECT 
  MATCH(title, description) AGAINST('Saga of a Moose') AS Relevance,
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('Saga of a Moose') > 2;

Резултат:

+--------------------+------------------------+---------------------------------------------------------------------------------------------------------+
| Relevance          | title                  | description                                                                                             |
+--------------------+------------------------+---------------------------------------------------------------------------------------------------------+
| 2.4431142807006836 | CAPER MOTIONS          | A Fateful Saga of a Moose And a Car who must Pursue a Woman in A MySQL Convention                       |
| 2.4431142807006836 | DATE SPEED             | A Touching Saga of a Composer And a Moose who must Discover a Dentist in A MySQL Convention             |
| 2.4431142807006836 | DELIVERANCE MULHOLLAND | A Astounding Saga of a Monkey And a Moose who must Conquer a Butler in A Shark Tank                     |
| 2.4431142807006836 | FLASH WARS             | A Astounding Saga of a Moose And a Pastry Chef who must Chase a Student in The Gulf of Mexico           |
| 2.4431142807006836 | HAROLD FRENCH          | A Stunning Saga of a Sumo Wrestler And a Student who must Outrace a Moose in The Sahara Desert          |
| 2.4431142807006836 | MAIDEN HOME            | A Lacklusture Saga of a Moose And a Teacher who must Kill a Forensic Psychologist in A MySQL Convention |
| 2.4431142807006836 | SHANE DARKNESS         | A Action-Packed Saga of a Moose And a Lumberjack who must Find a Woman in Berlin                        |
| 2.4431142807006836 | SLEEPLESS MONSOON      | A Amazing Saga of a Moose And a Pastry Chef who must Escape a Butler in Australia                       |
| 2.4431142807006836 | WAKE JAWS              | A Beautiful Saga of a Feminist And a Composer who must Challenge a Moose in Berlin                      |
| 2.4431142807006836 | WONKA SEA              | A Brilliant Saga of a Boat And a Mad Scientist who must Meet a Moose in Ancient India                   |
+--------------------+------------------------+---------------------------------------------------------------------------------------------------------+

Пример 7 – Включете резултати с нулева релевантност

Ето пример за изброяване на стойностите за уместност за всеки ред, дори ако стойността на уместност е нула. Можем да направим това, като не използваме MATCH() функция в WHERE клауза.

В този пример всъщност не използвам WHERE клауза. Използвам само LIMIT клауза за ограничаване на броя на резултатите.

SELECT 
  MATCH(title, description) AGAINST('Scientist') AS Relevance,
  title, 
  description
FROM film
LIMIT 15;

Резултат:

+-------------------+------------------+-----------------------------------------------------------------------------------------------------------------------+
| Relevance         | title            | description                                                                                                           |
+-------------------+------------------+-----------------------------------------------------------------------------------------------------------------------+
| 1.026631474494934 | ACADEMY DINOSAUR | A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies                      |
|                 0 | ACE GOLDFINGER   | A Astounding Epistle of a Database Administrator And a Explorer who must Find a Car in Ancient China                  |
|                 0 | ADAPTATION HOLES | A Astounding Reflection of a Lumberjack And a Car who must Sink a Lumberjack in A Baloon Factory                      |
|                 0 | AFFAIR PREJUDICE | A Fanciful Documentary of a Frisbee And a Lumberjack who must Chase a Monkey in A Shark Tank                          |
|                 0 | AFRICAN EGG      | A Fast-Paced Documentary of a Pastry Chef And a Dentist who must Pursue a Forensic Psychologist in The Gulf of Mexico |
|                 0 | AGENT TRUMAN     | A Intrepid Panorama of a Robot And a Boy who must Escape a Sumo Wrestler in Ancient China                             |
|                 0 | AIRPLANE SIERRA  | A Touching Saga of a Hunter And a Butler who must Discover a Butler in A Jet Boat                                     |
|                 0 | AIRPORT POLLOCK  | A Epic Tale of a Moose And a Girl who must Confront a Monkey in Ancient India                                         |
| 2.053262948989868 | ALABAMA DEVIL    | A Thoughtful Panorama of a Database Administrator And a Mad Scientist who must Outgun a Mad Scientist in A Jet Boat   |
|                 0 | ALADDIN CALENDAR | A Action-Packed Tale of a Man And a Lumberjack who must Reach a Feminist in Ancient China                             |
|                 0 | ALAMO VIDEOTAPE  | A Boring Epistle of a Butler And a Cat who must Fight a Pastry Chef in A MySQL Convention                             |
|                 0 | ALASKA PHANTOM   | A Fanciful Saga of a Hunter And a Pastry Chef who must Vanquish a Boy in Australia                                    |
|                 0 | ALI FOREVER      | A Action-Packed Drama of a Dentist And a Crocodile who must Battle a Feminist in The Canadian Rockies                 |
|                 0 | ALICE FANTASIA   | A Emotional Drama of a A Shark And a Database Administrator who must Vanquish a Pioneer in Soviet Georgia             |
| 1.026631474494934 | ALIEN CENTER     | A Brilliant Drama of a Cat And a Mad Scientist who must Battle a Feminist in A MySQL Convention                       |
+-------------------+------------------+-----------------------------------------------------------------------------------------------------------------------+

Пример 8 – Булев режим

MySQL ни позволява да изпълняваме пълнотекстови търсения в булев режим. За да направите това, добавете В БУЛЕВ РЕЖИМ модификатор на вашата заявка.

Булевият режим ви позволява да използвате оператори като + и - за да посочите дали определена дума или фраза трябва или не трябва да присъства.

В следващия пример поставям пред всяка дума знак плюс (+ ), за да посочите, че и двете думи трябва да присъстват.

SELECT 
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('+Saga +Moose' IN BOOLEAN MODE)
LIMIT 3;

Резултат:

+------------------------+---------------------------------------------------------------------------------------------+
| title                  | description                                                                                 |
+------------------------+---------------------------------------------------------------------------------------------+
| CAPER MOTIONS          | A Fateful Saga of a Moose And a Car who must Pursue a Woman in A MySQL Convention           |
| DATE SPEED             | A Touching Saga of a Composer And a Moose who must Discover a Dentist in A MySQL Convention |
| DELIVERANCE MULHOLLAND | A Astounding Saga of a Monkey And a Moose who must Conquer a Butler in A Shark Tank         |
+------------------------+---------------------------------------------------------------------------------------------+

В следващия пример променям един от знаците плюс на знак минус (- ). Това означава, че само онези редове, които съдържат думата Saga ще бъдат върнати, но само ако не също съдържа Moose :

SELECT 
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('+Saga -Moose' IN BOOLEAN MODE)
LIMIT 3;

Резултат:

+------------------+-------------------------------------------------------------------------------------------------+
| title            | description                                                                                     |
+------------------+-------------------------------------------------------------------------------------------------+
| AIRPLANE SIERRA  | A Touching Saga of a Hunter And a Butler who must Discover a Butler in A Jet Boat               |
| ALASKA PHANTOM   | A Fanciful Saga of a Hunter And a Pastry Chef who must Vanquish a Boy in Australia              |
| ARMY FLINTSTONES | A Boring Saga of a Database Administrator And a Womanizer who must Battle a Waitress in Nigeria |
+------------------+-------------------------------------------------------------------------------------------------+

Знакът минус се използва за изключване на резултати, които иначе биха били върнати. Следователно, ако всички наши думи за търсене са с префикс със знак минус, се връща празен набор.

SELECT 
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('-Saga -Moose' IN BOOLEAN MODE)
LIMIT 3;

Резултат:

Empty set (0.00 sec)

Има много повече оператори, които могат да се използват с булеви търсения, като ~ , < , > , * , и още. За по-подробна информация относно използването на булев режим вижте документацията на MySQL за булеви пълнотекстови търсения.

Пример 9 – С разширение на сляпо заявка

Можете да използвате С РАЗШИРЯВАНЕ НА ЗАЯВКА или В РЕЖИМ НА ЕСТЕСТВЕН ЕЗИК С РАЗШИРЯВАНЕ НА ЗАЯВКАТА модификатори за извършване на сляпо разширяване на заявката. Това може да бъде полезно, когато фразата за търсене е много кратка и когато върнатите резултати могат да бъдат твърде тесни (като по този начин се изключват потенциално подходящи документи).

Разширяването на заявката може да разшири търсенето чрез връщане на редове, които иначе не биха били върнати. По-специално, ако несъвпадащ ред съдържа думи, които също се съдържат в съвпадащ ред, този несъвпадащ ред може да стане съвпадащ ред. С други думи, несъвпадащ ред все още може да бъде върнат, просто защото споделя други думи със съвпадащ ред.

За демонстрация, ето едно нормално търсене без разширяване на заявката:

SELECT AlbumId, AlbumName
FROM Albums
WHERE MATCH(AlbumName) AGAINST('Blue' IN NATURAL LANGUAGE MODE);

Резултат:

+---------+------------+
| AlbumId | AlbumName  |
+---------+------------+
|      13 | Blue Night |
+---------+------------+

Изрично посочих В РЕЖИМ НА ПРИРОДЕН ЕЗИК но това е режимът по подразбиране, така че можех също да пропусна този модификатор, ако реших.

И ето същото търсене с разширяване на заявката:

SELECT AlbumId, AlbumName
FROM Albums
WHERE MATCH(AlbumName) AGAINST('Blue' WITH QUERY EXPANSION);

Резултат:

+---------+-----------------+
| AlbumId | AlbumName       |
+---------+-----------------+
|      13 | Blue Night      |
|      19 | All Night Wrong |
+---------+-----------------+

В този случай се връщат два резултата. Забележете как вторият резултат не съдържа фразата за търсене (blue ). Но съдържа думата Нощ което също се случва в първия резултат. Така че разширената заявка смята, че е достатъчно добра, за да бъде съвпадение.

Имената на албуми вероятно не са много добър случай на използване за режим на разширяване на заявката. По-добър случай на използване може да бъде търсене на например база данни , където разширената заявка може също да върне документи, които съдържат имена като MySQL , Oracle и т.н., дори ако не съдържат фразата база данни .

Ето още един пример. Този пример обаче използва двойни кавички, за да посочи, че трябва да присъства цялата дума за търсене.

Ако извършим търсенето без разширяване на заявката:

SELECT 
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('"Feminist And a Mad Scientist"')
LIMIT 3;

Резултат:

+------------------+--------------------------------------------------------------------------------------------------+
| title            | description                                                                                      |
+------------------+--------------------------------------------------------------------------------------------------+
| ACADEMY DINOSAUR | A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies |
+------------------+--------------------------------------------------------------------------------------------------+

Връща се само един резултат (това е единственият резултат, който съдържа цялата фраза, точно както е написано).

Но ако използваме разширение на сляпо заявка, ето какво се случва:

SELECT 
  title, 
  description
FROM film
WHERE MATCH(title, description) AGAINST('"Feminist And a Mad Scientist"' WITH QUERY EXPANSION)
LIMIT 3;

Резултат:

+--------------------+------------------------------------------------------------------------------------------------------+
| title              | description                                                                                          |
+--------------------+------------------------------------------------------------------------------------------------------+
| ACADEMY DINOSAUR   | A Epic Drama of a Feminist And a Mad Scientist who must Battle a Teacher in The Canadian Rockies     |
| DINOSAUR SECRETARY | A Action-Packed Drama of a Feminist And a Girl who must Reach a Robot in The Canadian Rockies        |
| VICTORY ACADEMY    | A Insightful Epistle of a Mad Scientist And a Explorer who must Challenge a Cat in The Sahara Desert |
+--------------------+------------------------------------------------------------------------------------------------------+

Първият ред е същият като когато не използвахме разширяване на заявката. След това обаче заявката отива и връща редове, които съдържат само части от нашата дума за търсене. Този резултат е ограничен само до три, защото използвах LIMIT 3 . Реалните резултати са много по-големи:

SELECT COUNT(*)
FROM film
WHERE MATCH(title, description) AGAINST('"Feminist And a Mad Scientist"' WITH QUERY EXPANSION);

Резултат:

+----------+
| COUNT(*) |
+----------+
|     1000 |
+----------+

Напълно възможно е много от тези резултати да са напълно ирелевантни за думата за търсене. Следователно разширяването на сляпо заявка обикновено работи най-добре за по-кратки думи за търсене.

За повече информация относно използването на сляпо разширение на заявка вижте документацията на MySQL:Пълнотекстови търсения с разширение на заявка.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL КЪДЕ В ()

  2. Върнете ред само ако стойността не съществува

  3. Генерирайте целочислена последователност в MySQL

  4. Предимства на MySQLi пред MySQL

  5. Как да четете MySQL двоични регистрационни файлове (BinLog) с mysqlbinlog