我正在嘗試編寫查詢以查找字符串是否包含列中值的一部分(不要與查詢混淆以查找列是否包含字符串的一部分)。舉例來說,我在表格中有一列值ABC,XYZ。如果我給搜索字符串ABCDEFG,那麼我想要顯示ABC的行。如果我的搜索字符串是XYZDSDS然後用值XYZ行應顯示SQL - 查詢字符串是否包含列中的值的一部分
回答
答案將是「使用LIKE」。
參見文檔:https://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html
你可以做WHERE 'string' LIKE CONCAT(column , '%')
因此查詢變爲:
select * from t1 where 'ABCDEFG' LIKE CONCAT(column1,'%');
如果您需要在字符串中的任何匹配:
select * from t1 where 'ABCDEFG' LIKE CONCAT('%',column1,'%');
在這裏你可以看到它在一個工作小提琴: http://sqlfiddle.com/#!9/d1596/4
這應該是正確的答案 – besimple 2016-01-21 08:48:30
SELECT * FROM表,其中@參數LIKE「%」 +山坳「%」
謝謝。它有助於。只是一個小修改。從*表中選擇*參數,如'%'|| col || '%' – user2354254 2015-04-01 11:20:07
如果我的回答對您有幫助,請立即投票並將其選爲正確答案。 – Aheho 2015-04-01 11:23:17
這不適合我。正確的答案是Turophile的 – besimple 2016-01-21 08:48:09
首先,你似乎是存儲的東西列出一列。這是在數據庫中存儲值的錯誤方法。你應該有一個聯結表,每個實體和值有一行 - 也就是說,在你的例子中,ABC
和XYZ
是一個單獨的行。 SQL有一個偉大的數據結構來存儲列表。它被稱爲「表格」,而不是「字符串」。
如果你被卡住這樣的格式和使用MySQL,有一個功能,可以幫助:
where find_in_set('ABC', col)
MySQL的對待分隔字符串逗號作爲「設置」,並提供該功能。但是,這個函數不能使用索引,所以它不是特別有效。我有沒有提到你應該使用交匯處?
- 1. 查詢完全包含查詢的一部分的字符串
- 2. SQL查詢刪除包含部分字符串的條目?
- 3. 如何檢查Datatable值是否包含字符串輸入的一部分?
- 4. 如何檢查一列中的字符串值是否使用SQL部分包含在另一列的字符串值中?
- 5. 用於測試字符串值是否包含回車符的SQL查詢
- 6. 在sql server中檢查字符串是否包含特定值
- 7. 如何檢查字符串[]的任何部分是否包含另一個字符串[]的任何部分?
- 8. 數組是否包含(的一部分)字符串?
- 9. 檢查字符串是否包含嵌套列表的值 - python
- 10. c#包含字符串的一部分
- 11. JavaScript包含字符串的一部分
- 12. sql查詢字符串包含在C#
- 13. 如何檢查數組中的字符串是否包含php中的一部分字符串?
- 14. 檢查字符串是否包含字符集中的字符
- 15. Linq查詢比較收集是否包含字符串列表
- 16. 檢查另一列中是否包含字符串?
- 17. 查找字符串是否包含字
- 18. 檢查一對字符串是否包含相同的字符?
- 19. 檢查字符串的一部分是否包含正則表達式
- 20. Applescript:檢查一個字符串是否包含空字符串?
- 21. 是否有另一種方法來執行此查詢? (在linq-to-sql查詢中包含分割字符串)
- 22. 檢查一個列表是否包含一個字符串
- 23. 檢查字符串中是否包含一組字符?
- 24. 字典是否包含包含多個部分字符串的密鑰?
- 25. 如何檢查列的數值是否包含通過SQL查詢的字母
- 26. Casbah/Salat:如何查詢包含字符串的一部分的字段?
- 27. 按列包含字符串的SQL Server查詢順序
- 28. 檢查字符串列表中的字符子集是否包含在另一個字符串列表中
- 29. MySQL檢查列是否包含來自字符串的字
- 30. MongoDB - 查找給定字符串中是否包含字段值
請澄清你的問題,並充分描述它應該如何與更多的例子。目前有太多未知數。你的專欄是否總是包含3個字符?你能匹配任何地方匹配字符串(不只是在開始)? – Turophile 2015-04-01 11:21:51