我有一種情況,我的通配符搜索是不是真的如何我認爲它應該... 這是我正在運行的MySQL查詢,它將只返回整個單詞...通配符搜索w/MySQL
例如。如果我輸入「手機」作爲搜索詞將返回在它與「手機」中的所有行,但不排,「手機」(注意加「S」)
mysql_query(" SELECT * FROM posts WHERE permalink = '$permalink' AND LOWER(raw_text) LIKE '%$str%' ");
我怎樣才能得到它返回搜索詞的所有變體?很明顯,我知道這可能會遇到問題,因爲如果用戶輸入常見的字母,它可能會返回各種匹配,我認爲我可以使這部分高級搜索選項。
ADENDUM 我已經把範圍縮小到不帶通配符的問題,但有什麼我用返回的數據做......這是我的正則表達式,我在數據投擲。
$pattern= "/(?:[\w\"',.-]+\s*){0,5}[\"',.-]?\S*".$str."(\s|[,.!?])(\s*[A-Za-z0-9.,-]+){0,5}/";
preg_match_all($pattern, $row["raw_text"], $matches);
該正則表達式在原始數據中找不到字符串,因此我正在返回空值。一個新問題,我並不熟悉正則表達式,所以我將盡可能地將這個問題解決出來......也許我會很快拋出一個新問題!
感謝, 中號
這並不直接回答你的問題,但它可能解釋你會看到它的一些奇怪的行爲。 [使用mysqli_prepare()]準備的查詢(http://php.net/manual/en/mysqli.prepare.php)。這個代碼就像它一樣,寫有「SQL注入漏洞」。 –