2017-04-08 1 views
-4

"tbl_settings"라는 테이블이 있습니다.동일한 Mysql 테이블에서 여러 행을 업데이트하는 방법

ID, 이름, 값, 설명이 4 개 있습니다.

각 설정에 대한 텍스트 상자가 나열된 html 양식이 있습니다.

제출시 설정 이름을 기반으로 각 설정 값을 업데이트하고 싶습니다.

참고로 몇 줄의 설정 이름은 site_title, site_title_description, contact_name입니다.

모든 행을 해당 행의 이름에 따라 해당 값으로 업데이트하는 가장 좋은 방법을 알아내는 데 도움이 필요합니다.

저는 휴대 전화에이 글을 쓰고 있으며 현재 나와 관련한 코드가 없으므로 실행해야하는 검색어에 대한 일반적인 아이디어 만 제공하십시오.

+0

https : //로 DEV .mysql.com/doc/refman/5.7/ko/update.html – RiggsFolly

+1

무엇을 시도 했습니까? 일반적으로 주어진 개별 업데이트 (대상으로 할 행에 대한 (1) 식별자와 해당 행에 설정할 값의 고유 한 조합)에 대해 데이터베이스에 대해 'UPDATE'명령을 실행합니다. – David

+0

텍스트 일치에 대한 where 절을 사용하여 업데이트하면됩니다. 'update table set name = '새 사이트 제목'where name = 'site_title''name'이'site_title' 인 모든 행은'new site title'으로 재설정됩니다. – chris85

답변

1
UPDATE tbl_settings 
SET value = 'new title' 
WHERE name = 'site_title' 

value = 'new title'을 가지고 모든 site_title 행이 변경됩니다.

WHERE 절은 SELECT 쿼리에서 업데이트 할 행을 보는 것과 동일한 조건을 사용할 수 있습니다. 당신이 다른 조건에 따라 differentt 값을 지정하려면

, 당신은 CASE 표현 사용할 수 있습니다

UPDATE tbl_settings 
SET value = CASE 
    WHEN condition1 THEN 'new title 1' 
    WHEN condition2 THEN 'new title 2' 
    WHEN condition3 THEN 'new title 3' 
END 
WHERE name = 'site_title' 
AND (condition1 OR condition2 OR condition3) 

을 아니면이 당신이 원하는 무엇인가 :

UPDATE tbl_settings 
SET value = CASE name 
    WHEN 'site_title' THEN 'new title' 
    WHEN 'site_title_description' THEN 'new description' 
    WHEN 'contact_name' THEN 'new contact name' 
END 
WHERE name in ('site_title', 'site_title_description', 'contact_name') 
+0

여러 행을 DIFFERENT 값으로 업데이트해야합니다. – MktCloud

+0

질문에서 더 명확하게 설명해야합니다. 업데이트 할 행을 어떤 값으로 결정할 수 있습니까? – Barmar

+0

사과드립니다. 나는 내 전화에서 올리며 지금은 컴퓨터에서 멀리 떨어져있다. 나는 각 행을 업데이 트하는 사건 기능을 시도했지만 그 작동하지 않습니다. – MktCloud

관련 문제