嗨我試圖做一個關鍵字搜索我正在處理的Java程序。我遇到了一堵牆,試圖弄清楚如何傳遞一個包含1-n個單詞並用空格分隔的字符串,然後查看mysql數據庫中的列是否有任何內容。如果它至少包含一個我希望它返回所選數據。MySQL檢查列是否包含來自字符串的字
我一直在使用這樣做的,其中相同的方式嘗試,但它似乎沒有工作
如
SELECT `Data`
FROM `TABLE`
WHERE `Keywords` LIKE passedString
嗨我試圖做一個關鍵字搜索我正在處理的Java程序。我遇到了一堵牆,試圖弄清楚如何傳遞一個包含1-n個單詞並用空格分隔的字符串,然後查看mysql數據庫中的列是否有任何內容。如果它至少包含一個我希望它返回所選數據。MySQL檢查列是否包含來自字符串的字
我一直在使用這樣做的,其中相同的方式嘗試,但它似乎沒有工作
如
SELECT `Data`
FROM `TABLE`
WHERE `Keywords` LIKE passedString
嘗試
SELECT `Data` FROM `TABLE` WHERE `Keywords` LIKE + '%' + passedString + '%'
但是你之前分裂傳遞的字符串轉換爲單個字符串(單詞)並在循環中運行您的查詢,直到找到您想要的結果。
使用%,它表示零個,一個或多個字符。
SELECT `Data`FROM `TABLE`WHERE `Keywords` LIKE '%passedString%'
這會將傳遞的字符串拆分爲字符嗎?或者他們仍然是完整的話? – CryptiK
我覺得你很困惑。它將返回'Data'列中包含'passedString'的那些行。 –
"%"
符號用於在模式之前和之後定義通配符(缺少字母)。
SELECT Data
FROM TABLE
WHERE Keywords LIKE '%passedString%'
%
替代零個或多個字符。
反轉條件(即測試如果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 –