在 Mysql 数据库中搜索所选行
Search in Mysql database on selected rows
我正在尝试使用 PHP 中的 mysqli 准备语句进行查询。
我只想在选定的行上使用关键字进行搜索。
$stmt = $this->conn->prepare("SELECT complaint_id
FROM complaints WHERE user_id = ?
AND status IN (?,?) AND
complaint_id IN ( SELECT complaint_id FROM complaints Where MATCH (body) AGAINST ( ? ))
ORDER BY user_id ASC");
$stmt->bind_param("iiis", $user_id,$status1,$status2,$keyword);
我知道我需要做一个子查询。但是谁能解释一下子查询的格式是什么,或者我的方法是否正确?
您根本不需要执行子查询。只需将其他条件添加到您的 select 语句中,例如:
SELECT complaint_id
FROM complaints WHERE user_id = ?
AND status IN (?,?) AND
MATCH (body) AGAINST ( ? )
ORDER BY user_id ASC
结果将与您限制具有 user_id、状态和正文匹配的记录相同。
另外,通过 运行 这个 SQL:
确保你的专栏有全文索引
ALTER TABLE complaints ADD FULLTEXT(body);
我正在尝试使用 PHP 中的 mysqli 准备语句进行查询。 我只想在选定的行上使用关键字进行搜索。
$stmt = $this->conn->prepare("SELECT complaint_id
FROM complaints WHERE user_id = ?
AND status IN (?,?) AND
complaint_id IN ( SELECT complaint_id FROM complaints Where MATCH (body) AGAINST ( ? ))
ORDER BY user_id ASC");
$stmt->bind_param("iiis", $user_id,$status1,$status2,$keyword);
我知道我需要做一个子查询。但是谁能解释一下子查询的格式是什么,或者我的方法是否正确?
您根本不需要执行子查询。只需将其他条件添加到您的 select 语句中,例如:
SELECT complaint_id
FROM complaints WHERE user_id = ?
AND status IN (?,?) AND
MATCH (body) AGAINST ( ? )
ORDER BY user_id ASC
结果将与您限制具有 user_id、状态和正文匹配的记录相同。
另外,通过 运行 这个 SQL:
确保你的专栏有全文索引ALTER TABLE complaints ADD FULLTEXT(body);