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

MySQL - Dapatkan 3 nilai pertama yang dipisahkan koma

Anda dapat menggunakan SUBSTRING_INDEX dua kali, yang kedua dengan parameter -1:

SELECT
  'aaaaa, bbbbb, ccccc',
  SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 1) AS column_one,
  SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2), ',', -1) AS column_two,
  SUBSTRING_INDEX(SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 3), ',', -1) AS column_three

Jika parameternya negatif, semua yang ada di sebelah kanan pembatas akhir (dihitung dari kanan) dikembalikan. Mis.

  • SUBSTRING_INDEX('aaaaa, bbbbb, ccccc', ',', 2) akan mengembalikan aaaaa, bbbbb
  • SUBSTRING_INDEX( aaaaa, bbbbb, ',', -1) kemudian akan mengembalikan bbbbb

Anda juga mungkin ingin menggunakan ', ' sebagai pembatas, atau TRIM hasilnya.

Silakan lihat biola di sini .

Sunting

Jika Anda ingin mempertimbangkan string yang mungkin memiliki kurang dari tiga nilai, Anda dapat menggunakan sesuatu seperti ini:

SELECT
  s,
  SUBSTRING_INDEX(s, ',', 1) AS column_one,
  CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>0
       THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 2), ',', -1)
       ELSE NULL END AS column_two,
  CASE WHEN LENGTH(s)-LENGTH(Replace(s, ',', ''))>1
       THEN SUBSTRING_INDEX(SUBSTRING_INDEX(s, ',', 3), ',', -1)
       ELSE NULL END AS column_three
FROM
  strings

Silakan lihat biola di sini .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PILIH DI MANA DI (subquery) lambat

  2. Mengapa putaran MySQL mengapung jauh lebih dari yang diharapkan?

  3. Tidak dapat membuat beberapa tabel db khusus pada aktivasi Plugin wp

  4. hapus baris dari beberapa tabel

  5. Metode otentikasi 'mysql_old_password' tidak didukung