>백엔드 개발 >PHP 튜토리얼 >하나의 필드에 여러 값이 쉼표로 구분되어 데이터 테이블의 이 필드에 특정 값이 포함된 모든 ID를 검색합니다.

하나의 필드에 여러 값이 쉼표로 구분되어 데이터 테이블의 이 필드에 특정 값이 포함된 모든 ID를 검색합니다.

不言
不言원래의
2018-05-24 15:40:433832검색

예:

id   user_id   
1    2,32,4
2    3,63,2
3    4,62,7

user_id에서 2가 포함된 id을 꺼내면 결과 => 1, 2(별도의 2 포함)

  1. like 메소드는 당연히 안 먹힌다

  2. 간결하고 아름다운 sql문

  3. 보기 아래층에 필드 구조 변경에 대한 이야기가 있지만 현재로서는 허용되지 않을 수 있습니다. 프로젝트 전체가 오픈되어 있기 때문에 제가 이곳으로 이동하고 다른 곳에서 이 곳을 호출하게 되면 현장 구조의 변화로 인해 예상치 못한 문제가 발생할 수 있습니다.

답글 내용:

밤 주기:

id   user_id   
1    2,32,4
2    3,63,2
3    4,62,7

user_id2가 들어 있는 을 꺼내세요. id , 결과 =》1,2 (별도의 2 포함)

  1. 좋아요 방법은 확실히 작동하지 않습니다

  2. 간결하고 아름다운 SQL 문

  3. 아래층에서 필드 구조 변경에 대해 많은 말을 하는 사람을 봤습니다. 지금은 허용되지 않을 수 있습니다. 프로젝트 전체가 오픈되어 있기 때문에 제가 이곳으로 이동하고 다른 곳에서 이 곳을 호출하게 되면 현장 구조의 변화로 인해 예상치 못한 문제가 발생할 수 있습니다.

SELECT id FROM table WHERE find_in_set('2',user_id);

id user_id
1 ,2,32,4,
2 ,3,63,2,
3 , 4,62,7,

이렇게 바꾸면 처럼 하기 편하고 할 수도 있어요

사실 중간 테이블을 나누는 게 더 좋습니다

테이블 제품

id      
1    
2   
3

테이블 사용자

user_id   
2
3
4
6
32   
62
63

중간 테이블

product_id   user_id

1               2
1               32
1               4
2               2
2               63
2               3
3               4
3               62
3               7

그래도 테이블 구조를 변경하는 것이 좋습니다! 이것은 정말 쉽지 않습니다. 아니면

id   user_id   
1    [2],[32],[4]
2    [3],[63],[2]
3    [4],[62],[7]

등의 데이터 저장 방식을 변경하고 퍼지 쿼리를 사용하세요. 하지만 여전히 테이블 데이터를 수정하는 것이 좋습니다

mysql5.7에는 json 유형이 있습니다

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.