MySQL在哪里(字符串的子字符串)?

MySQL在哪里(字符串的子字符串)?,mysql,sql,Mysql,Sql,所以我试着这样做: SELECT customerID, name, email FROM Customers WHERE customerID IN (substrings delineated by spaces of CID string) 我想做的是,它返回具有匹配customerID的条目 不幸的是,值CID是所有匹配CID的字符串,由空格分隔。我试着把它改成某种列表,但没有成功。如果我可以使用类似字符串拆分器的东西来解决我的问题,但它在MySQL中似乎不可用 很抱歉问了一个相对简单

所以我试着这样做:

SELECT customerID, name, email
FROM Customers
WHERE customerID IN (substrings delineated by spaces of CID string)
我想做的是,它返回具有匹配customerID的条目

不幸的是,值CID是所有匹配CID的字符串,由空格分隔。我试着把它改成某种列表,但没有成功。如果我可以使用类似字符串拆分器的东西来解决我的问题,但它在MySQL中似乎不可用


很抱歉问了一个相对简单的问题,但一个小时的谷歌搜索没有得到明确的答案。

一种方法是

SELECT customerID, name, email
FROM Customers
WHERE CONCAT(' ', CID, ' ') LIKE concat('% ', customerID, ' %') ;

我真的主张你把绳子分开。如果它来自一个表,那么您可能需要一个连接/关联表。

我想知道您是否可以使用
REPLACE
功能:

SELECT customerID, name, email
FROM Customers
WHERE customerID IN (REPLACE(CID string,' ',','))
试试这个:
在集合中查找的位置(CustomerID,REPLACE(spacedList,,,,)>0


您可能还需要将CustomerID强制转换为字符,但我会先尝试不使用强制转换。

Concat一次只能对两个参数起作用,我可以使用WHERE(“| | | | | | | |””)之类的(“%”CustomerID“| | |”%”)吗?@JRHB。MySQL对其接受的参数数量没有任何限制:。如果您对只接受两个参数的
concat()
有问题,那么您的问题是错误的。从
REPLACE
返回的将是单个标量值。语法是有效的,但就在列表中查找
customerID
而言,这不适用于比较中的