1
我有一個表有4個領域的答案,名爲a1,a2,a3,a4。 其中一些可能被標記爲正確。我在正確的答案中加上了「 - 正確」。檢查所有colums值
總之,現在用戶選擇答案時,我想比較任何正確的答案。
我只熟悉%LIKE%和WHERE函數。我正在嘗試使用MATCH AGAINST。 任何幫助將不勝感激。
邁克
PHP:
public function checkAnswer($id, $answer){
try{
$_id = $this->db->mysqli->real_escape_string($id);
$_answer = $this->db->mysqli->real_escape_string($answer);
$viewer_answered = $_answer."-correct";
$sql = "SELECT * FROM myTbl WHERE match(a1,a2,a3,a4) against('+ $viewer_answered' IN BOOLEAN MODE) AND id='{$_id}'";
$result = $this->db->mysqli->query($sql);
if(!$result)
{
throw new Exception("Query failed: " . $sql . " - " . $this->db->mysqli->error);
}else{
// I dont know how to check the result of the match! any help please
}
} catch(Exception $e){
echo("Message: " . $e->getMessage());
}
}
爲什麼不只是存儲在正確的字段值的數量additoinal場。或者更好的是,爲什麼不規範化你的數據,並有一個問題表和答案表與一對多的關係? –
'MATCH ... AGAINST'用於全文搜索。你需要一個全文索引,但是單詞之間用空格隔開,所以這對你來說無效。 –
謝謝!這是@MikeBrant的最佳解決方案。 –