Php Mysql-从指定文本中选择单词
我有一个包含413000个地名(Pris,伦敦,…)的表。是否有方法(查询)从指定文本中选择位置 例如: “伦敦交通局(Transport for London,TfL)正与其美国、澳大利亚和欧洲合作伙伴就为巴黎、纽约发行单一非接触式卡进行谈判。” 我希望查询得到:Php Mysql-从指定文本中选择单词,php,text,mysql,sql-like,Php,Text,Mysql,Sql Like,我有一个包含413000个地名(Pris,伦敦,…)的表。是否有方法(查询)从指定文本中选择位置 例如: “伦敦交通局(Transport for London,TfL)正与其美国、澳大利亚和欧洲合作伙伴就为巴黎、纽约发行单一非接触式卡进行谈判。” 我希望查询得到: * London * Paris * New York 我试过了 SELECT name FROM coutries WHERE ("Transport for London (TfL) is in talks with it
* London
* Paris
* New York
我试过了
SELECT name
FROM coutries
WHERE ("Transport for London (TfL) is in talks with its American, Australian and European partners about issuing a single contactless card for Paris, New York") LIKE CONCAT('%', name, '%');
它的速度很慢,而且没有给出确切的单词,比如(巴黎、纽约、欧元、纽约……)
我怎样才能得到精确的单词呢?执行这样的查询很奇怪,你能不能更改表的结构以匹配更简单的数据?执行这样的查询很奇怪,你能不能更改表的结构以匹配更简单的数据?你最好在前端/中间端代码中将句子拆分成单词,然后做一些类似的事情
SELECT name from countries where
name in ('Transport', 'for', 'London')
e、 t.c
通过这种方式,它将(尝试)使用索引(如果有的话)作为名称。您最好在前端/中间端代码中将您的句子拆分为单词,然后执行以下操作
SELECT name from countries where
name in ('Transport', 'for', 'London')
e、 t.c
这样,它将(尝试)使用索引(如果有)作为名称。使用相反的方法:
使用for或while构建SQL,这只是几个可行选项中的一个。以相反的方式进行:
使用for或while构建SQL,这只是几个可行选项之一。您需要的是mysql全文搜索。 这应该起作用:
SELECT name
FROM coutries
WHERE MATCH ("Transport for London (TfL) is in talks with its American, Australian and European partners about issuing a single contactless card for Paris, New York") AGAINST (name);
您需要的是mysql全文搜索。 这应该起作用:
SELECT name
FROM coutries
WHERE MATCH ("Transport for London (TfL) is in talks with its American, Australian and European partners about issuing a single contactless card for Paris, New York") AGAINST (name);
@用户,您不能在将指定文本发送到SQL之前拆分它吗?@user,您不能在将指定文本发送到SQL之前拆分它吗?