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

Làm cách nào để tôi có thể sử dụng mySQL Replace () để thay thế các chuỗi trong nhiều bản ghi?

Ở mức rất chung chung

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'SearchForThis', 'ReplaceWithThis')

WHERE SomeOtherColumn LIKE '%PATTERN%'

Trong trường hợp của bạn, bạn nói rằng chúng đã được thoát nhưng vì bạn không chỉ rõ cách chúng được thoát, giả sử chúng đã được thoát đến GREATERTHAN

UPDATE MyTable

SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')

WHERE articleItem LIKE '%GREATERTHAN%'

Vì truy vấn của bạn thực sự sẽ hoạt động bên trong chuỗi, nên WHERE của bạn mệnh đề thực hiện đối sánh mẫu của nó không có khả năng cải thiện bất kỳ hiệu suất nào - nó thực sự sẽ tạo ra nhiều công việc hơn cho máy chủ. Trừ khi bạn có một thành viên mệnh đề WHERE khác sẽ làm cho truy vấn này hoạt động tốt hơn, bạn có thể chỉ cần thực hiện cập nhật như sau:

UPDATE MyTable
SET StringColumn = REPLACE (StringColumn, 'GREATERTHAN', '>')

Bạn cũng có thể lồng nhiều REPLACE cuộc gọi

UPDATE MyTable
SET StringColumn = REPLACE (REPLACE (StringColumn, 'GREATERTHAN', '>'), 'LESSTHAN', '<')

Bạn cũng có thể làm điều này khi bạn chọn dữ liệu (thay vì khi bạn lưu nó).

Vì vậy, thay vì:

SELECT MyURLString From MyTable

Bạn có thể làm

SELECT REPLACE (MyURLString, 'GREATERTHAN', '>') as MyURLString From MyTable



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn khôi phục MySQL

  2. Cách tạo chỉ mục trong MySQL

  3. Xóa nhiều hàng bằng cách chọn hộp kiểm sử dụng PHP

  4. mysqli_query () mong đợi ít nhất 2 tham số, 1 tham số được đưa vào?

  5. NOW () Ví dụ - MySQL