您好我想知道当我只键入一个时,是否有一种方法可以匹配多个单词。 让我解释。所以这是我刚刚输入的查询:
SELECT*
FROM
rc_orders o
WHERE
o.custCity
LIKE
'sof%'
这样就会从表格中选择以“sof”开头的所有城市。例如“索菲亚”。或者,如果我输入“新”,它将匹配以“新”开头的城市 - > “纽约”,“新泽西”等 但让我解释看看我在说什么。如果我输入“york”,我希望自动完成功能显示“纽约”。或者如果我输入“jersey”,我希望查询匹配“new jersey”等等。 提前谢谢!
答案 0 :(得分:2)
您可以在where子句中尝试使用regexp
,例如
select * from `rc_orders` o where o.`custcity` regexp 'york';
答案 1 :(得分:0)
这应该有效。如果您在字符串的开头添加%
,它将作为前通配符工作,返回与所有匹配的结果,而不仅仅是开头。
SELECT * FROM rc_orders o WHERE o.custCity LIKE '%sof%'
此链接包含有关模式匹配的更多信息,包括其他选项(如另一个答案中提到的regexp
)供您使用。
https://dev.mysql.com/doc/refman/5.7/en/pattern-matching.html
答案 2 :(得分:0)
一个解决方案是搜索包含第二个单词(例如泽西岛)的custCity字段,该字段将返回整个城市。这是第一个回归的解决方案。
SELECT TOP 1 o.cusstCity FROM rc_orders o WHERE o.custCity LIKE '%jersey%'
应该返回新球衣
我假设两个城市没有相同的第二个字,如果不是,你需要进行不同的搜索。