私はWHEREパラメータとして特定の会社名と職種を持つ連絡先を探す検索をしています。場合によっては、指定された役職および会社との連絡がありません。私は会社名のセットを使用しているので、どの結果が見つからなかったかをどのように見つけることができますか?これは、例えばSQL文は、私はそれが理にかなっている場合、そのジョブのタイトルのいずれかの連絡先を持っていなかった企業を知りたいSQLで見つからなかったデータレコードはどのようにして見つけられますか?
SELECT *
FROM contacts
WHERE company_name IN ('bbc', 'yahoo', 'some company')
AND contact_position
LIKE 'manager'
かもしれません...
説明するのは本当に難しいのですか?
私はこれまでしてきたが、私はこれを行うためのより良い方法があると推測:
$contacts_no_inv = Contact::find_query("
SELECT *
FROM contacts
WHERE {$data_search}
AND contact_position
LIKE '%{$_POST['job_title']}%'
");
if ($contacts_no_inv) {
foreach ($contacts_no_inv as $contact_no_inv) {
$companies_found[] = $contact_no_inv->company_name;
if (!in_array($contact_no_inv->contact_id, $idArr)) {
$filtered_no_inv[] = $contact_no_inv;
}
}
}
$companies_found = array_unique($companies_found);
$companies_found = array_filter($companies_found);
foreach ($_POST['query'] as $query) {
if (!in_array(strtolower($query), array_map('strtolower', $companies_found))) {
if (count(explode(' ', strtolower($query))) > 1) {
foreach (explode(' ', $query) as $query_element) {
if (!in_array(strtolower($query_element), array_map('strtolower', $companies_found))) {
$companies_found[] = $query;
}
}
}
$companies_not_found[] = $query;
}
}
これは、すべての余分なPHPコードがなくても、あなたのSQL文で完全に行うことができます。あなたのテーブル構造を投稿することは、あなたの仕事を達成するための質問を書くのを助けるでしょう。 – mituw16