[英]How to concat find_in_set results with comma separated string in mysql
[英]how to find a comma with mysql find_in_set
是有可能找到一個commma
與find_in_set
?
我試過了:
select find_in_set('\,', '\,');
我的用例是:
where find_in_set(r.tag, vfilterList)
在這里,vfilterList是一個逗號分隔的列表,作為存儲過程的輸入提供-r.tag是表中的標記字符串。 (所以我只想過濾到vfilterList中具有標簽的行)。 但是,某些標記字符串中包含逗號。 (在vfilterList中,標記中的逗號是否會轉義?)。
告訴我我做錯了嗎?
不,不可能。
該文檔特別指出這是行不通的。
如果第一個參數包含逗號(“,”)字符,則此功能無法正常工作。
http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_find-in-set
該函數旨在返回以逗號分隔的子字符串的順序位置。 根據定義,從本質上講,它永遠不會找到帶有逗號的任何內容,因為它僅考慮它們之間的值。
根據您實際要完成的工作, INSTR()
或SUBSTRING_INDEX()
可能會有用。
最終只是用管道替換了逗號。 (並對過濾器列表中的每個標簽執行相同的操作)。 對於我們的用例來說,它具有相當准確的誤報率是非常不可能的。
where find_in_set(replace(r.tag,",","|"), vfilterList)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.