나는 내 데이터베이스의 행에 저장된 아이디의를 가지고 있고, ID는 쉼표의 예로 구분됩니다누구든지이 쿼리를 도와 줄 수 있습니까?
12,3,5,2,7
와 나는를 내파하여 쿼리를 만들려고하고 있어요 문자열 및 각 ID를 다른 테이블에서 선택하지만 성능 문제로 인해 쿼리를 반복하지 않도록 노력하고있어. 어쨌든 루프 주위에 있습니까? 현재 mysqli prepared statements를 사용하고 있습니다. IDS에 저장
는$stmt = $DBH->prepare("SELECT ids FROM list WHERE user = ?");
$stmt->bind_param("s",$userid);
$stmt->execute();
$stmt->bind_result($ids);
$stmt->fetch();
내가하는 태그 시스템과 유사 목록의 번호, 각각 일치하는 행을 찾고 다른 테이블을 조회 할 수 있습니다 지금 방법, 단지 숫자의 목록입니다. 숫자 또는 숫자의 양은 미리 결정되거나 알려지지 않습니다.
EXAMPLE:
Table 1: Where the actual Information is stored
ID Information
1 /*information stored for id number 1*/
2 /*information stored for id number 2*/
3 /*information stored for id number 3*/
4 /*information stored for id number 4*/
5 /*information stored for id number 5*/
Table 2: The users name and a list of id's stored (The ID_LIST will be constantly changing and expanding, the numbers contained will not be predefined.)
USER ID_LIST
exampleuser 1,3,5
exampleuser2 1,4,12,22
첫 번째 쿼리는 표 2의 ID 목록을 가져 와서 분리합니다. 그럼 내가 테이블 2의 ID 목록에있는 ID에서 표 1의 각 ID에서 정보를 얻을 필요가있다. 하지만 루프를 피하기 위해 노력하고있어, 잘하면 이것은 충분히 구체적으로 알려주지 않으면 알려 주시기 바랍니다.
단일 데이터베이스 필드 내에 목록을 저장하는 것은 나쁜 형식입니다. 당신이 발견 한 것처럼 실제로 데이터를 얻는 것은 매우 어렵습니다. [데이터베이스 정규화를 읽어보십시오.] (http://en.wikipedia.org/wiki/Database_normalization) 스키마 디자인을 수정하면 인생이 훨씬 쉬워 질 것입니다. – Charles
예제를 보여줄 수 있습니까? – Gaurav
그래, 도와 줘서 고마워, 조금 더 구체적으로 편집해라. – mcbeav