我需要設置一個SELECT查詢,該查詢將根據列中具有逗號分隔列表的匹配字符串返回行。根據與SQLite的文本匹配選擇行
下面是數據的一個例子:
path title desc type feed_type markets tags
IMG_5639.jpg Malta Title description photo sheetfed tobacco,education gatefolds,accordian
IMG_5672.jpg Malta Title description conceptual inline magazine gatefolds,oversized
IMG_5689.jpg Malta Title description conceptual digital non-profit oversized
IMG_5691.jpg Malta Title description photo sheetfed automotive oversized,obtuse
IMG_5694.jpg Malta Title description photo inline tobacco postcard,oblong
IMG_5699.jpg Malta Title description conceptual digital education oversized,obtuse
IMG_5701.jpg Malta Title description conceptual sheetfed service postcard,oblong
01.jpg Barcelona Title barcelona conceptual sheetfed service diecut
02.jpg Barcelona Title barcelona photo inline education postcard,oblong
03.jpg Barcelona Title barcelona photo digital associations gatefolds,accordian
提示:如果這是您的數據庫架構,我強烈建議您不要將CSV列表放入列中。這是一個反模式,很難從SQL查詢:http://www.slideshare.net/billkarwin/sql-antipatterns-strike-back – 2012-03-22 16:46:34
我試過SELECT * FROM圖像WHERE標籤LIKE'diecut'AND tags like'長方形「期望獲得包含兩者的結果。似乎第二個LIKE對我的結果無任何影響。 如果我做一些像標籤LIKE'過大,鈍'它會得到正確的結果。儘管我希望它恢復原樣,但如何使用「鈍的,過大的」將不會返回任何結果。 – ChickensDontClap 2012-03-22 19:38:03
@BlueDude - 這是因爲當你使用這樣的LIKE子句時,它會進行原始文本比較 - 上面的數據中沒有任何地方出現'鈍,超大'的數據,所以它不會返回任何東西。作爲你的單元測試的一部分,你需要做的很好。 – 2012-03-22 19:53:07