簡體   English   中英

如何在mysql中使用with子句替換函數

[英]how to use replace function with in clause in mysql

我想要sql查詢,它輸出為concat字符串

Sql查詢

SELECT GROUP_CONCAT(nm) FROM xyz WHERE xyz.id IN (REPLACE(abc,"|",','))

其中abc是字符串,如1 | 2 | 3 | 4這是上面查詢的xyz表的id只給出abc中的第一個id的nm。我創建查詢的東西就像

SELECT GROUP_CONCAT(nm) FROM xyz WHERE xyz.id IN ("1,2,3,4")

所以(“)可能會造成任何人都可以幫助的問題。

你可以使用LIKE ,(但它不會使用索引)

SELECT GROUP_CONCAT(nm)
FROM xyz
WHERE CONCAT('|', abc, '|') LIKE CONCAT('%|', xyz.id, '|%');

您可以像這樣使用INSTR

SELECT GROUP_CONCAT(nm) 
FROM xyz 
WHERE INSTR(CONCAT('|', abc, '|'), CONCAT('|', xyz.id, '|')) > 0

或者您可以實現拆分功能或使用動態SQL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM