![](/img/trans.png)
[英]How to prevent SQL search query from returning rows where columns have no value?
[英]Returning rows from database based on search query
我有一個具有以下架構的產品表:
products (itemname VARCHAR(50), itemid INT(10));
示例記錄如下所示( itemname
, itemid
):
現在假設用戶在網站的搜索框中輸入查詢並顯示相應的結果。 即,如果用戶輸入blackberry
則應顯示 Blackberry 手機
我正在尋找以下問題的答案:
blackberry
那么如何搜索呢? 我應該搜索blackberry
字作為上表itemname
列的子字符串嗎?apple 32gb
。 現在,如果我使用上述子字符串的方法,那么它將不起作用,因為表中沒有將apple 32gb
作為子字符串的行。 在這種情況下如何搜索?mobiles
。 在這種情況下,應該顯示所有的手機。 在這種情況下,將itemname
匹配為子字符串也不起作用。apple 32gb black color
。 在這種情況下,應該顯示 32GB 容量和黑色的蘋果產品。我知道實現 100% 正確的搜索是不可能的。 我只是在尋找提示/如何進行。 我正在使用 PHP、MySQL、Apache。
這是什么類型的數據庫,如果 MySQL 您可以在字段上啟用全文搜索,然后只需一個簡單的查詢即可獲得您期望的結果。
對於許多單詞搜索,我會做這樣的事情:
$searchArray = explode(" ", $searchString);
foreach ($searchArray as $word)
{
//add an OR clause to your sql query like the following
$query .= "OR itemname like %".$word."%";
}
其他問題要復雜得多,但我希望這會有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.