C++에서 문자열 배열로 항목 목록이 있습니다. 나는 또한 블랙리스트 된 문자열을 포함하고있는 sqlite3 데이터베이스를 가지고있다. 이제는 내가 블랙리스트에 있는지 아닌지 알려주는 아이템 목록을 0 또는 1로 표시해야합니다. "select * from ITEMS_TABLE WHERE item = string [i]"를 사용하여 하나씩 검색 할 수는 있지만 시간이 걸립니다. 또한 데이터베이스에서 블랙리스트를 가져 와서 내 목록에서 찾아 볼 수도 있습니다. 그러나 목록에있는 항목 중 블랙리스트에있는 항목을 찾는 효과적인 방법이 있습니까?sqlite3 데이터베이스에서 특정 항목에 대한 검색 쿼리
는
struct item
{
char name[MAX_NAME_LEN];
bool isBlacklisted;
};
그런 다음 내가 그들 중 하나가 블랙리스트 경우에 알고 이러한 구조의 배열을 사용 나는 구조 다음했다 말할 수 있습니다. 그래서 항목이 데이터베이스에서 발견되면 true로 isBlacklisted 플래그를 만들어야합니다. Select 접근 방식을 사용하면 블랙리스트에 있던 항목 목록을 반환합니다. 하지만 여전히 문자열 비교를 사용하여 배열에서 찾을 필요가 있습니다. 할 수있는 효율적인 방법이 있습니까? 데이터베이스가 이러한 기능을 제공합니까?
감사합니다. 마이크.
안녕하세요 도움이 될 것입니다 nswer,이게 더 효율적으로 일하는 데 도움이되지만 업데이트 된 문제에 대한 해결책을 제공해 주실 수 있습니까 – Mogambo
이게 도움이 되길 바란다 –
나는 이런 식의 테이블을 가지고 있습니다. 그러나 N 아이템을 포함하는 다른리스트를 얻을 수도 있습니다. 데이터베이스에 있어야합니다. 그래서 이들 중 하나가 데이터베이스에 있다면 블랙리스트로 표시해야합니다. 데이터베이스에는 블랙리스트 항목 만 포함되어 있으며, 항목 목록을 가져 와서 블랙리스트에있는 항목 중 어떤 항목을 스캔합니까? 위에서 언급 한대로 DB에서 항목 목록을 얻습니다. 이제는이 목록을 N 항목 목록과 일치시켜야합니다. 일치하는 항목이 발견되면 차단 목록이 설정됩니다. 문자열 비교를 피하고 싶습니다. 데이터베이스로 할 수 있는지 확인 – Mogambo