客户(姓名,邮政,城市)
查找包含三个或更多单词的所有客户名称(例如King George V
)。
select name from customers
where name like
'%[A-Za-z0-9][A-Za-z0-9]% %[A-Za-z0-9][A-Za-z0-9]% %[A-Za-z0-9][A-Za-z0-9]%'
如果我正在尝试两个单词(从我的查询中移除最后一个%[A-Za-z0-9]%
),它的工作正常,但它不适用于三个单词:(
答案 0 :(得分:2)
MySQL解决方案:
如果name
的单词由 space 字符分隔,则
尝试以下方法:
select name from customers
where ( length( name )
-
length( replace( name, ' ', '' ) ) + 1
) >= 3
答案 1 :(得分:0)
在t-sql中,like子句可以包含多个通配符检查 - 例如: SELECT * FROM Customers WHERE名称如' %%%'
将返回包含两个空格的名称。
答案 2 :(得分:0)
如果您与名称之间的间距保持一致,则可以使用此逻辑
SELECT LENGTH(name)-LENGTH(REPLACE(name,' ',''))
FROM customers
答案 3 :(得分:0)
或者如果你的sql没有长度功能(这是我在网上练习时的情况......你也可以试试这个......)灵感来自上面的答案
SELECT name FROM customers WHERE (replace(name,' ','*')) LIKE '%*%*%'