Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengekstrak Word Nth dan Mengira Kejadiannya dalam MySQL dan PostgreSQL?

Bagaimanakah Saya Boleh Mengekstrak Word Nth dan Mengira Kejadiannya dalam MySQL dan PostgreSQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-08 21:30:12273semak imbas

How Can I Extract the Nth Word and Count its Occurrences in MySQL and PostgreSQL?

Mengekstrak Nth Word dan Mengira Kejadian Word dalam MySQL

Persoalan yang dikemukakan berkenaan dengan kemungkinan pertanyaan MySQL yang boleh mengekstrak perkataan tertentu daripada rentetan teks dan kira kejadiannya. Contoh yang disediakan bertujuan untuk mengekstrak perkataan kedua daripada teks.

Penyelesaian Pertanyaan untuk Postgres

Walaupun MySQL tidak menyokong pengekstrakan padanan regeks langsung, pangkalan data lain seperti PostgreSQL memberikan pendekatan yang lebih mudah. Dalam PostgreSQL, pertanyaan berikut boleh digunakan:

SELECT word, count(*)
FROM (
  SELECT SPLIT_PART(text, ' ', 2) AS word
  FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
) AS words
GROUP BY word;

Pertanyaan ini menggunakan fungsi SPLIT_PART untuk memisahkan teks kepada perkataan individu berdasarkan ruang dan mengekstrak perkataan kedua. Jadual yang terhasil mengumpulkan perkataan mengikut kejadiannya.

Penyelesaian untuk MySQL

Untuk MySQL, pendekatan berbeza diperlukan kerana pengekstrakan regex langsung tidak disokong. Satu penyelesaian melibatkan penggunaan gabungan subrentetan dan fungsi locate:

SELECT SUBSTRING(
  text,
  LOCATE(' ', text) + CHAR_LENGTH(' '),
  LOCATE(' ', text, ( LOCATE(' ', text) + 1 ) - ( LOCATE(' ', text) + CHAR_LENGTH(' ') )
) AS word, count(*)
FROM (SELECT 'THIS IS A TEST' AS text) AS tmp
GROUP BY word;

Pertanyaan ini mencari kedudukan ruang pertama dalam teks, yang akan berada selepas perkataan pertama. Ia kemudian menambah panjang ruang pada kedudukan ini untuk memulakan pengekstrakan perkataan kedua. Panjang subrentetan yang diekstrak dikira dengan mencari ruang seterusnya dan menolak kedudukan permulaan daripadanya.

Kaedah ini memerlukan pelarasan untuk mengekstrak perkataan ke-n yang berbeza.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Word Nth dan Mengira Kejadiannya dalam MySQL dan PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn