Mysql
 sql >> база данни >  >> RDS >> Mysql

Синтактична грешка на SQL с подниз и charindex

Ако използвате SQL Server, имате неправилно оформено JOIN . И много лоши псевдоними на таблици. Може би това прави това, което искате:

update fs
    set user_id = u.id,
        message = SUBSTRING(fs.message, 1, CHARINDEX('[', fs.message)-1)
    from edi_file_steps fs INNER JOIN
         GU_User u
         on u.login = SUBSTRING(fs.message, CHARINDEX('[', fs.message)+1, len(fs.message)- CHARINDEX('[',fs.message)-1 )
    where message LIKE '%Downloaded%' ;

РЕДАКТИРАНЕ:

В MySQL това би било:

update edi_file_steps fs INNER JOIN
       GU_User u
       on fs.message like concat('%[', u.login, ']%')
    set user_id = table_B.id,
        message = substring_index(fs.message, '[', 1)
    where message LIKE '%Downloaded%' ;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL заявка за връщане на редове, които съдържат празно пространство

  2. сложни sql дървесни редове

  3. MySQL INSERT else, ако съществува UPDATE

  4. Мога ли да настроя филтрирана репликация на база данни със звезда?

  5. Най-добри практики за меко изтриване (PHP/MySQL)