Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Permintaan mysql untuk mengekstrak domain dari url

Saya harus menggabungkan beberapa jawaban sebelumnya, ditambah sedikit lebih banyak peretasan untuk kumpulan data saya. Inilah yang berfungsi untuk saya, ini mengembalikan domain dan sub-domain apa pun:

SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(target_url, '/', 3), '://', -1), '/', 1), '?', 1) AS domain

Penjelasan ( karena SQL yang tidak sepele jarang masuk akal ):

SUBSTRING_INDEX(target_url, '/', 3) - menghapus jalur apa pun jika url memiliki protokol
SUBSTRING_INDEX(THAT, '://', -1) - menghapus protokol apa pun dari ITU
SUBSTRING_INDEX(THAT, '/', 1) - menghapus jalur apa pun dari ITU ( jika tidak ada protokol )
SUBSTRING_INDEX(THAT, '?', 1) - menghapus string kueri dari ITU ( jika tidak ada jalur atau trailing / )

Kasus Uji:

SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(SUBSTRING_INDEX(target_url, '/', 3), '://', -1), '/', 1), '?', 1) AS domain
FROM ( 
    SELECT       'http://test.com' as target_url 
    UNION SELECT 'https://test.com' 
    UNION SELECT 'http://test.com/one' 
    UNION SELECT 'http://test.com/?huh' 
    UNION SELECT 'http://test.com?http://ouch.foo' 
    UNION SELECT 'test.com' 
    UNION SELECT 'test.com/one'
    UNION SELECT 'test.com/one/two'
    UNION SELECT 'test.com/one/two/three'
    UNION SELECT 'test.com/one/two/three?u=http://maaaaannn'
    UNION SELECT 'http://one.test.com'
    UNION SELECT 'one.test.com/one'
    UNION SELECT 'two.one.test.com/one' ) AS Test; 

Hasil:

'test.com'
'test.com'
'test.com'
'test.com'
'test.com'
'test.com'
'test.com'
'test.com'
'test.com'
'test.com'
'one.test.com'
'one.test.com'
'two.one.test.com'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengambil hasil sebagai array multidimensi dari mySQL dan PHP?

  2. Fungsi MySQL EXP() – Mengembalikan e Diangkat ke Kekuatan x

  3. Apakah MySQLi memverifikasi sertifikat server secara default saat menggunakan SSL?

  4. bagaimana cara mengunduh file berbasis gumpalan dari database MySQL di PHP?

  5. Kesalahan sintaks pembatas MySQL