programing

mysql의 하위 쿼리 구분 기호

newsource 2023. 10. 12. 23:19

mysql의 하위 쿼리 구분 기호

product_category_parent라는 테이블에 대한 필드(예: parent_id)를 업데이트하려고 합니다.

사용하려는 쿼리는 다음과 같습니다.

update sub_category_child set name='Mobile Phones', parent_id = (select parent_id from product_category_parent where cname = 'Appliances')

그러나 다음 오류를 반환합니다.

#1064 - SQL 구문에 오류가 있습니다. MariaDB 서버 버전에 해당하는 설명서에서 1행에서 '' 근처에 사용할 올바른 구문을 확인하십시오.

데이터베이스 스키마입니다.

table product_category_parent
id              cname
-----          ----------
1              Electronics

table sub_category_child
id         name        parent_id
-----      --------    -------------
1          Mobile Phone   1

parent_id를 product_ category_parent.id의 외부 키로 지정합니다.

첫째, 당신은 아마도 당신이 원하는 것은id부모 테이블에서, 그렇지 않습니다.parent_id부모님 테이블에서. 그렇죠?

UPDATE sub_category_child 
SET name = 'Mobile Phones', 
parent_id = (SELECT id FROM product_category_parent WHERE cname = 'Appliances')

둘째, 이 쿼리를 사용하면 의 모든 레코드를 업데이트할 수 있습니다.sub_category_child테이블. 그게 당신이 원하는 건가요, 아니면 당신이 놓친 건가요?WHERE조항?

셋째, 하위 쿼리가 1개 이상의 레코드를 반환하는 경우 문제가 발생합니다.업데이트에 사용할 것을 선택하려고 합니다(예:ORDER by xx LIMIT 1), 또는 - 뭔가 잘못되었을 가능성이 높습니다.각각의 선들이 그 안에 있다고 가정합니다.sub_category_child부모가 한 명만 있어야 합니다. 그렇다면 부모를 찾기 위한 실제 조건은 무엇인가요?Mobile Phones카테고리?

언급URL : https://stackoverflow.com/questions/41450121/sub-query-delimite-in-mysql