我看了一下,我發現了像我這樣的幾個問題,但他們缺乏解釋。加權MySql查詢搜索
我試圖搜索一個表有多個列。我想要在頂部具有最高匹配列數的行和底部最少的行。我見過幾種做法。我目前和糟糕的方式是有很多MySQL查詢和PHP在做這項工作。
例
+----+-----------+----------+------+-------+
| ID | firstName | lastName | more | stuff |
+----+-----------+----------+------+-------+
| 1 | Bob | Hope | 1 | 450 |
| 2 | Steve | Hope | 0 | 29 |
| 3 | Gary | Flops | 1 | 8 |
+----+-----------+----------+------+-------+
我希望能夠搜索lastName = Hope OR more = 1
我想鮑勃·霍普是在頂部,因爲他符合兩個要求的東西。在這個例子中,我知道這將會發生,但這僅僅是一個例子。
如果我查詢; lastName = Hope OR firstName = Steve
。史蒂夫應該在排在第一位的是鮑勃
我希望這很容易理解。 有些人可以給我一個詳細的例子和解釋。
謝謝你。我用這個作爲我簡單加權搜索的基礎。這是非常緩慢的,但它完美的作品。是否有任何提示和技巧讓它更快?再次感謝您Paul – user756476
@ user756476:您可以嘗試添加一個WHERE條件來消除不包含您正在搜索的值的行,例如:WHERE lastName ='Hope'OR firstName ='Steve''。還要確保您正在測試的列已編入索引。你也可以嘗試@ ypercube的建議。 – Mike