Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

MySQL chọn các từ trong dấu ngoặc kép trong một cột văn bản lộn xộn

Bạn nên tìm một cách tốt hơn để trình bày những gì bạn muốn, nhưng tôi nghĩ rằng những điều sau đây đã kết thúc:

select concat_wc(',', substring_index(substring_index(entry_value, '"', 2), '"' -1),
                 substring_index(substring_index(entry_value, '"', 4), '"' -1),
                 . . .
                )

Bạn có thể phải đặt điều kiện dừng dựa trên số lượng giá trị trong số giá trị trong chuỗi, dẫn đến kết quả như:

select concat_ws(',',
                 case when num_entry_values >= 1 then substring_index(substring_index(entry_value, '"', 2), '"' -1) end,
                 case when num_entry_values >= 2 then substring_index(substring_index(entry_value, '"', 4), '"' -1) end,
              . . .
             )

Nếu bạn không có con số này, bạn có thể tính nó bằng cách đếm số lượng dấu ngoặc kép trong chuỗi.

CHỈNH SỬA:

Để đếm số lượng mục nhập, hãy đếm " :

from (select aev.*,
             (length(entry_value) = length(replace(entry_value, '"', '')) ) / 2 as num_entry_values
      from ch_arf_entry_values aev
     ) aev



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chỉ mục tổng hợp cho một bảng quan hệ

  2. Cách nối hai bảng bằng danh sách được phân tách bằng dấu phẩy trong trường nối

  3. Không thể chuyển đổi giá trị ngày / giờ của MySQL thành System.DateTime

  4. Trợ giúp về MySQL:Cách tìm tất cả các đơn đặt hàng từ khách hàng cho đến khi giá <=20 và trạng thái ='chưa thanh toán'

  5. Sử dụng filesort để sắp xếp theo cột ngày giờ trong MySQL