Tôi có một bảng MySQL mà tôi đã nhập từ tệp CSV. Trong quá trình này, một loạt các mục có dấu hiệu dẫn đầu và theo dõi mục nhập của một số hàng dữ liệu. Ví dụ: bảng 'example_table' Tôi có một hàng gọi là 'tiêu đề'. Một số tiêu đề này được viết là:
"title1"
"title2"
"title3"
và một số được viết mà không có dấu ngoặc kép:
title4
title5
title6
Tôi đã thử một loạt các cuộc gọi SQL để cắt hàng nhưng tôi tiếp tục gặp lỗi. Đây là cuộc gọi SQL của tôi:
SELECT * FROM `example_table` TRIM[LEADING '"' FROM "title"]
Đây là lỗi từ MySQL khi tôi chạy cuộc gọi:
1064 - Bạn có lỗi trong cú pháp SQL của mình; Kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn để sử dụng cú pháp phù hợp
Làm thế nào để tôi thoát khỏi tất cả các dấu ngoặc kép hàng đầu và hàng đầu từ hàng?
hỏi ngày 16 tháng 7 năm 2011 lúc 16:27Jul 16, 2011 at 16:27
Try:
UPDATE `example_table`
SET `title` = TRIM[BOTH '"' FROM `title`]
Truy vấn này sẽ cập nhật example_table
của bạn để xóa các trích dẫn kép dẫn đầu và theo dõi khỏi giá trị của cột title
.
Nếu bạn không muốn cập nhật bảng, nhưng muốn tìm nạp các hàng với các trích dẫn đôi được xóa, thì hãy sử dụng câu trả lời của @sam Dufel.
Đã trả lời ngày 16 tháng 7 năm 2011 lúc 16:32Jul 16, 2011 at 16:32
ShefshefShef
44.1K15 Huy hiệu vàng78 Huy hiệu bạc90 Huy hiệu đồng15 gold badges78 silver badges90 bronze badges
1
Chỉ cần thay đổi điều đó thành
SELECT TRIM[BOTH '"' FROM title] AS trimmed_title FROM `example_table`
Đã trả lời ngày 16 tháng 7 năm 2011 lúc 16:32Jul 16, 2011 at 16:32
ShefshefSam Dufel
44.1K15 Huy hiệu vàng78 Huy hiệu bạc90 Huy hiệu đồng3 gold badges48 silver badges51 bronze badges
1
Chỉ cần thay đổi điều đó thành
UPDATE table_name SET column_name = REPLACE[column_name,'"','']
Sam Dufelsam DufelMar 9, 2016 at 10:05
17.4K3 Huy hiệu vàng48 Huy hiệu bạc51 Huy hiệu ĐồngJanie
Điều này đã giải quyết vấn đề của tôi9 silver badges25 bronze badges
1
Đã trả lời ngày 9 tháng 3 năm 2016 lúc 10:05
select trim[both '"' from column_name] from table_name;
JaniejanieJul 16, 2011 at 16:39
1
Ngoài việc thực hiện thao tác chuỗi sau mỗi
title4
title5
title6
0, có cách đơn giản hơn hoặc chính xác hơn để có title4
title5
title6
0 trả về chuỗi mà không có trích dẫn kèm theo?Hay câu hỏi này nên được đặt trên Stachexchange?
Hỏi ngày 12 tháng 7 năm 2016 lúc 8:36Jul 12, 2016 at 8:36
3
Nếu bạn có MySQL 5.7.13 trở lên, bạn có thể sử dụng
title4
title5
title6
2 thay vì title4
title5
title6
3 hoặc title4
title5
title6
4 thay vì title4
title5
title6
5. Thí dụ:title4
title5
title6
6Đã trả lời ngày 31 tháng 7 năm 2016 lúc 4:07Jul 31, 2016 at 4:07
AXMAXMAXM
4584 Huy hiệu bạc5 Huy hiệu Đồng4 silver badges5 bronze badges
1
Tôi không thể bình luận về câu trả lời của Alex Markov vì tôi không có đủ danh tiếng. Trong trường hợp của tôi bằng cách sử dụng json_unquote thay vì json_extract không hoạt động, nhưng tôi có thể nhận được kết quả bằng cách gói thứ hai bên trong cái trước, như thế này: json_unquote [json_extract [bla bla]]
Đã trả lời ngày 2 tháng 8 năm 2019 lúc 15:50Aug 2, 2019 at 15:50
1
Tôi đã sử dụng
title4
title5
title6
7 và nó hoạt động tốt để không thông báo cho chuỗi.Bạn có thể thử ví dụ này:
SELECT emp_name,
JSON_EXTRACT_SCALAR[address,'$[1].city_name'] AS city
FROM emp_details
Mustaccio
22.7K20 Huy hiệu vàng51 Huy hiệu bạc67 Huy hiệu Đồng20 gold badges51 silver badges67 bronze badges
Đã trả lời ngày 30 tháng 10 năm 2020 lúc 14:01Oct 30, 2020 at 14:01
1