2010-12-14 161 views
2

我需要的東西似乎很簡單,但迄今爲止我還沒有把它取出來。也許這只是這麼晚的時間,或者也許並不是那麼簡單,我不知道更多:) 所以,這是事情。我希望能夠檢查我的網站中的搜索字符串是否包含我數據庫中某個特定列的任何字段。因此,這將是往常的相反:搜索字符串中包含的mysql字符串

mysql_query(" 
SELECT * 
FROM `table` 
WHERE `column` LIKE '%{$search}%' 
"); 

看起來與價值觀在搜索字符串包含領域。
什麼是最簡單的方法,使用一些正則表達式或...?

非常感謝!

回答

3

只要做到這一點的其他方式

SELECT * 
FROM `table` 
WHERE '{$search}' LIKE concat('%', `column`, '%')

包涵爲變量轉義SQL注入正確的語法。

+0

嗯,這是有道理的,但它沒有爲我工作...沒有錯誤,只是沒有過濾出正確的。 – Spaceploit 2010-12-14 16:49:52

+0

@spaceploitator:Hum ..需要顯示錶格定義,然後才能顯示條目和預期結果。 – Danosaure 2010-12-14 18:28:34

+0

列字段類型是latin1_swedish_ci中的varchar,所有條目實際上都是5位數字。所以如果我搜索'123456',我想匹配'12345'條目。 – Spaceploit 2010-12-15 01:47:27

0

你的查詢也是你想要的。 但你仍然可以試試這個。

您可以使用mysql中的MATCH() AGAINST()語句搜索您的字符串。

mysql_query("SELECT * FROM table_name WHERE MATCH(field11,field12) AGAINST ('searchstring')"); 


Here your field must be having Fulltext datatype. 

這可能很好。

謝謝。

+0

嗨chandresh,是的,我很熟悉匹配,但它不會爲我工作的數據類型。不管怎麼說,還是要謝謝你! – Spaceploit 2010-12-14 16:38:09

相關問題