2016-10-27 84 views
0

嗨我試圖做一個關鍵字搜索我正在處理的Java程序。我遇到了一堵牆,試圖弄清楚如何傳遞一個包含1-n個單詞並用空格分隔的字符串,然後查看mysql數據庫中的列是否有任何內容。如果它至少包含一個我希望它返回所選數據。MySQL檢查列是否包含來自字符串的字

我一直在使用這樣做的,其中相同的方式嘗試,但它似乎沒有工作

SELECT `Data` 
FROM `TABLE` 
WHERE `Keywords` LIKE passedString 
+0

反轉條件(即測試如果passedString包含「關鍵字」)並使用http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_instr或者也許你可以使用http ://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set –

回答

0

嘗試

SELECT `Data` FROM `TABLE` WHERE `Keywords` LIKE + '%' + passedString + '%' 

但是你之前分裂傳遞的字符串轉換爲單個字符串(單詞)並在循環中運行您的查詢,直到找到您想要的結果。

1

使用%,它表示零個,一個或多個字符。

SELECT `Data`FROM `TABLE`WHERE `Keywords` LIKE '%passedString%' 
+0

這會將傳遞的字符串拆分爲字符嗎?或者他們仍然是完整的話? – CryptiK

+0

我覺得你很困惑。它將返回'Data'列中包含'passedString'的那些行。 –

0

"%"符號用於在模式之前和之後定義通配符(缺少字母)。

SELECT Data 
FROM TABLE 
WHERE Keywords LIKE '%passedString%' 

%替代零個或多個字符。

相關問題