Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę zastąpić tylko pierwszy wynik w funkcji SQL?

W MySQL <8.0, gdzie regexp_replace() i tym podobne nie są obsługiwane, możesz użyć funkcji ciągów:

update wp_comments
set comment_content = concat(
    substr(comment_content, 1, locate('XXX', comment_content) - 1),
    'MMM',
    substr(comment_content, locate('XXX', comment_content) + 3)
) 
where comment_id = 334 and locate('XXX', comment_content) > 0

Demo na DB Fiddle :

comment_id | comment_content                                                               
---------: | :-----------------------------------------------------------------------------
       334 | Hello MMM tomorrow we XXX will meeting in XXX Dubai, Do you want join us XXX ?


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przechowywanie rewizji obiektów relacyjnych w wydajny sposób

  2. Usuń MySQL z Grupuj według

  3. Aplikacja webowa spring-boot po chwili traci możliwość łączenia się z MySQL/RDS

  4. SQL — podaj 3 trafienia tylko dla każdego typu

  5. Używanie net/ssh/gateway do ustanowienia tunelu ssh do mysql