2016-09-27 6 views
-3

table2의 select with table2에서 column (a)를 업데이트하지만 table2의 기존 열 (b)가 null이 아닌 경우에만 업데이트를 원합니다. 내가 어디에 내 진술에 영향을 미칠 것이기 때문에 진술 (null이 아님)을 사용하고 싶지 않다. 내 코드의null이 아닌 경우에만 업데이트

예 :

update table1 set column(a) = (select column(b) from table2) 

나는이

update table1 set column(a) = not null(select column(b) from table2) 

예처럼 뭔가를 시도하고있다 : 당신은 당신의 제약 조건을 달성하기 위해이 쿼리를 사용할 수 있습니다

update ExpressMarketCheck set Barcode = (select barcode from ExpressMarket), Name=(select name from expressmarket), price=(select price from expressmarket) 
+2

"내 모든 코드에 영향을 미칩니다"는 의미는 무엇입니까? 왜 간단하고 표준적인'WHERE' 절을 사용하지 않을 수 있습니까? –

+1

WHERE 절의 문제점은 무엇입니까? –

답변

1

.

Update ExpressMarketCheck set Barcode = (select barcode from ExpressMarket where barcode IS NOT NULL) 
+1

상관없는 하위 쿼리? – jarlh

+0

은 그가 원하지 않는 것을 정확히 말합니다. "나는 성명 (null이 아님)을 사용하고 싶지 않다." – Nebi

+0

정보 주셔서 감사합니다. 처음에는 대답을 게시 할 때 그 제약 조건이 없었습니다. – vignesh

1

MySQL의는 IFNULL 기능을 가지고, 그래서 당신은 할 수 :

UPDATE your_table_name 
SET your_column_name= "data", 
scan_created_date = ISNULL(your_column_name, "data") 
WHERE id = X 
+0

SQL-Server에서는 'ISNULL()' – Nebi

+0

을 사용해 주셔서 감사합니다. :) –

0

나는 당신이 join 싶은 생각 :

update emc 
    set Barcode = em.barcode, 
     Name = em.name, 
     price= em.price 
    from ExpressMarketCheck emc join 
      expressmarket em 
      on emc.?? = em.??; 

내가 열이 사용되어야 하는지를 질문에서 말할 수 없다 join의 경우 ??은 자리 표시 자입니다.

관련 문제