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
而言,这不适用于比较中的。