2013-07-11 64 views
1

使用PHP + Mysql,我有一個數據庫,其中包含一個像表一樣的小短語;SQL搜索短語數據庫aganst正文中的文本

+----+-----------------+ 
| ID | phrase   | 
+----+-----------------+ 
| 1 | quick brown fox | 
| 2 | slow green  | 
| 3 | lazy dog  | 
| 4 | ultra hyper cat | 
+----+-----------------+ 

是否與文本的小身材查詢數據庫實用和有效的方式,例如像...

敏捷的棕色狐狸跳過了懶狗

並讓它返回第1和第3行?注意;表格中的文本始終格式化爲無標點符號,單個空格等。

謝謝。

+0

一旦我得到的原型解決方案,下面我將設置被接受的答案;謝謝!當我完成時,我會看看是否可以在答案之間添加一些基準基準信息。 – Kver

+0

到目前爲止提交的答案的問題是它們效率不高。部分文本匹配不會使用索引,因此會進行全表掃描,每行都會調用一個函數。對於小數據集,這是可以接受的,但對於大數據集不適用。最佳解決方案將存儲的字符串分解爲索引字,但這不是我以前完成的! – Purpletoucan

回答

0

你可以嘗試這樣的事情也:

SELECT phrase FROM my_tbl WHERE 'the quick brown fox jumped over the lazy dog' LIKE CONCAT('%',phrase,'%') 
+0

呵呵。我不知道LIKE是否可以在針後放置柱子。儘管是完美的。 XD – Kver