Mengekstrak Perkataan dan Mengira Kejadian dalam Rentetan MySQL
Soalan:
Anda mencari MySQL pertanyaan serupa seperti berikut:
select <second word in text> word, count(*) from table group by word;
Adakah a sintaks untuk mengekstrak teks daripada ungkapan menggunakan ungkapan biasa dalam MySQL?
Jawapan:
Semasa mengekstrak padanan regex secara langsung tidak disokong dalam fungsi MySQL lalai, seperti yang disebut oleh mc0e, terdapat ialah penyelesaian untuk mengekstrak perkataan tertentu dalam rentetan menggunakan gabungan rentetan fungsi:
SUBSTRING( sentence, LOCATE(' ', sentence) + CHAR_LENGTH(' '), LOCATE(' ', sentence, ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') ) )
Penggunaan:
Untuk mengekstrak perkataan kedua daripada rentetan, anda boleh menggunakan pertanyaan berikut:
SELECT SUBSTRING( sentence, LOCATE(' ', sentence) + CHAR_LENGTH(' '), LOCATE(' ', sentence, ( LOCATE(' ', sentence) + 1 ) - ( LOCATE(' ', sentence) + CHAR_LENGTH(' ') ) ) as string FROM (SELECT 'THIS IS A TEST' AS sentence) temp
Ini akan mengembalikan perkataan "IS" sebagai output.
Nota:
Jika mengekstrak padanan regex adalah keperluan berulang, pertimbangkan untuk memproses pasca keputusan pada klien atau memasang sambungan MySQL yang menyokong pengekstrakan regex.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak perkataan kedua dari rentetan MySQL menggunakan fungsi rentetan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!