我对 LIKE
运算符有疑问。我创建的查询正在搜索类似的内容,例如,我搜索 Street 34:
WHERE address LIKE '%Street%' AND address LIKE '%34%'
问题是,如果我写的地址太长,MySQL 查询就会变慢。有没有可能更快的解决方案?我知道有运算符 REGEXP
或 IN
但它们使用 OR
进行搜索,但我需要按 AND
进行搜索。
ps:为什么我要写多个LIKE
?这是因为有些人发送的消息可能不是“Street 34”,而是“34 Street”。
最佳答案
添加一个搜索表,其中包含 id 和 varchar 字段。
将每个独特的单词放入其中。
制作一个链接表,将单词链接到其地址。
表地址
Id address
1 34 bakersfield
2 steve irwing street 34
表词
Id word
1 34
2 bakersfield
3 steve
4 Irwing
5 Street
链接表
Street_id word_id
1. 1
1. 2
2. 3
2. 4
2. 5
2. 1
然后您所要做的就是定位并加入。
您还可以在查询中使用 where。
另一种选择是启用全文索引,其作用相同(但更好),但在屏幕后面。
关于php - Mysql 多个 LIKE 与 "AND",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41515828/