所以我正在尝试这样做:
SELECT customerID, name, email
FROM Customers
WHERE customerID IN (substrings delineated by spaces of CID string)
我要在哪里发生,它返回具有匹配的customerID的条目。
不幸的是,值CID是由空格分隔的所有匹配CID的字符串。我已尝试将其更改为某种列表,但为此没有运气。如果我可以使用诸如字符串拆分器之类的东西来解决问题,但在MySQL中似乎不可用。
很抱歉,这个相对简单的问题,但是一个小时的谷歌搜索并没有给出明确的答案。
答案 0 :(得分:1)
我想知道您是否可以使用REPLACE
函数:
SELECT customerID, name, email
FROM Customers
WHERE customerID IN (REPLACE(CID string,' ',','))
https://dev.mysql.com/doc/refman/8.0/en/string-functions.html#function_replace
答案 1 :(得分:0)
一种方法是like
:
SELECT customerID, name, email
FROM Customers
WHERE CONCAT(' ', CID, ' ') LIKE concat('% ', customerID, ' %') ;
我确实主张您将字符串分开。如果它来自表,那么您可能需要一个结点/关联表。
答案 2 :(得分:0)
尝试一下:
WHERE FIND_IN_SET(CustomerID, REPLACE(spacedList, ' ', ',')) > 0
您可能还需要将CustomerID强制转换为字符,但我会尝试先不强制转换。