Tôi có hai cơ sở dữ liệu. Người ta có dấu nháy đơn trong các tên như O'Bannon và người ta thì không. Tôi cần phải hợp nhất chúng và tìm các bản sao. Vì khó khăn hơn để thêm dấu nháy đơn nên thay vào đó, tôi sẽ loại bỏ chúng
Nhưng điều này...
UPDATE Client
SET Last_Name = REPLACE[''','']
Rõ ràng sẽ không hoạt động. Làm thế nào để một người thoát khỏi '.
Tôi đang sử dụng Xojo [không phải PHP]
Conrad Frix
51.1K12 Huy hiệu vàng90 Huy hiệu bạc151 Huy hiệu đồng12 gold badges90 silver badges151 bronze badges
Khi được hỏi ngày 17 tháng 5 năm 2013 lúc 21:34May 17, 2013 at 21:34
8
Giống như bạn nói, bạn sẽ muốn thoát khỏi các ký tự báo giá.
Xem tài liệu này về chuỗi chữ:
Có một số cách để bao gồm các ký tự trích dẫn trong một chuỗi:
Một '' bên trong một chuỗi được trích dẫn với '' 'có thể được viết là' '' '.
Một "" bên trong một chuỗi được trích dẫn với "" có thể được viết là "" ".
Trước ký tự trích dẫn bởi một ký tự thoát [\ \]].
Một '' bên trong một chuỗi được trích dẫn với "" không cần điều trị đặc biệt và không cần phải nhân đôi hoặc thoát khỏi. Theo cách tương tự, "" bên trong một chuỗi được trích dẫn với "'không cần điều trị đặc biệt.
Tuy nhiên, tùy thuộc vào cách bạn đối phó với SQL, bạn có thể cần phải làm nhiều hơn thế. Nếu ứng dụng đang thoát khỏi ký tự báo giá và chuyển điều đó cho một cuộc gọi thủ tục được lưu trữ, bạn có thể gặp phải vấn đề tương tự nếu bạn không sử dụng liên kết tham số với các câu lệnh đã chuẩn bị. Điều này là do MySQL loại bỏ ký tự thoát khi xử lý các đầu vào của SP. Sau đó, nhân vật không bị cản trở đi đến việc xây dựng truy vấn và vấn đề tự lặp lại nếu nó nên được thoát ra ở đó. Trong trường hợp này, bạn sẽ muốn chuyển sang liên kết tham số, để việc xây dựng thoát và truy vấn nằm ngoài tay bạn.
Đã trả lời ngày 17 tháng 5 năm 2013 lúc 21:44May 17, 2013 at 21:44
1
Ở đây chúng tôi đi:
UPDATE Client SET Last_Name = REPLACE[Last_Name, '\'', ''];
Bạn chỉ cần thoát khỏi dấu nháy đơn sẽ trở lại.
Đã trả lời ngày 17 tháng 5 năm 2013 lúc 21:41May 17, 2013 at 21:41
SumoanandsumoanandSumoanand
8.6651 Huy hiệu vàng47 Huy hiệu bạc46 Huy hiệu đồng1 gold badge47 silver badges46 bronze badges
0
Chỉ cần thêm một ký tự thoát [____ 4] trước trích dẫn:
Đặt last_name = thay thế ['\' ',' ']
Tuy nhiên, tôi không nghĩ rằng đây là cách đúng đắn vì bạn sẽ mất thông tin cho tên ban đầu của người đó và vì vậy o'reily
và oreily
dường như sẽ giống họ với bạn.
Đã trả lời ngày 17 tháng 5 năm 2013 lúc 21:37May 17, 2013 at 21:37
Ivaylo strandjevivaylo strandjevIvaylo Strandjev
67.5K17 Huy hiệu vàng119 Huy hiệu bạc171 Huy hiệu đồng17 gold badges119 silver badges171 bronze badges
1
Từ 9.1.1 Chuỗi theo nghĩa đen
Bảng 9.1. Trình tự thoát khỏi nhân vật đặc biệt
Escape Sequence Character Represented by Sequence
\0 An ASCII NUL [0x00] character.
\' A single quote [“'”] character.
\" A double quote [“"”] character.
\b A backspace character.
\n A newline [linefeed] character.
\r A carriage return character.
\t A tab character.
\Z ASCII 26 [Control+Z]. See note following the table.
\\ A backslash [“\”] character.
\% A “%” character. See note following the table.
\_ A “_” character. See note following the table.
Tất nhiên nếu ANSI_Mode không được bật, bạn có thể sử dụng dấu ngoặc kép
Đã trả lời ngày 17 tháng 5 năm 2013 lúc 21:37May 17, 2013 at 21:37
Ivaylo strandjevivaylo strandjevConrad Frix
51.1K12 Huy hiệu vàng90 Huy hiệu bạc151 Huy hiệu đồng12 gold badges90 silver badges151 bronze badges
1
Khi được hỏi ngày 17 tháng 5 năm 2013 lúc 21:34
SELECT PhraseId FROM Phrase WHERE Text = REPLACE["don't", "\'", "''"]
Giống như bạn nói, bạn sẽ muốn thoát khỏi các ký tự báo giá.Feb 3, 2014 at 8:20
Xem tài liệu này về chuỗi chữ:Thiru
Có một số cách để bao gồm các ký tự trích dẫn trong một chuỗi:13 silver badges21 bronze badges
0