[SQL] 여러 값을 FIND_IN_SET
SQL여러 값을 FIND_IN_SET
나는 데이터베이스 필드에서 여러 값을 검색합니다. 아래에있는 내 쿼리입니다.
SELECT * FROM `tablename`
WHERE FIND_IN_SET('12,13,15,15',category_id)
내가 검색 방법은 나를 위해 작동하지 않습니다.
해결법
-
==============================
1.FIND_IN_SET는 ()는 쉼표로 구분 된 목록에서 하나의 값을 검색 할 수 있습니다, 그것은 두 목록 작동하지 않습니다.
FIND_IN_SET는 ()는 쉼표로 구분 된 목록에서 하나의 값을 검색 할 수 있습니다, 그것은 두 목록 작동하지 않습니다.
각 값을 개별적으로 호출해야합니다.
SELECT * FROM tablename WHERE FIND_IN_SET('12', category_id) OR FIND_IN_SET('13', category_id) OR FIND_IN_SET('15', category_id)
대신 쉼표로 구분 된 목록을 사용하는 스키마를 정상화하면 좋을 것입니다. 당신이 범주 ID로 대다 테이블을 작성하는 경우, 당신은 할 수 있습니다 :
SELECT t1.* FROM tablename AS t1 JOIN item_categories AS c ON t1.id = c.table_id WHERE c.category_id IN (12, 13, 15)
from https://stackoverflow.com/questions/51335920/find-in-set-with-multiple-value by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 지수하지만 차없는 키와 MySQL의 테이블 (0) | 2020.07.12 |
---|---|
[SQL] 동적 SQL LOOP (0) | 2020.07.12 |
[SQL] 오라클 DB 인용 열 이름 (0) | 2020.07.12 |
[SQL] 두 개의 서로 다른 결과 집합을 받고 이러한 두 개의 쿼리의 차이는 무엇입니까? (0) | 2020.07.12 |
[SQL] 어떻게 T-SQL을 사용하여 URL에서 XML을 읽을 수 있습니까? (0) | 2020.07.12 |