gpt4 book ai didi

mysql - 从mysql中的文本字段中提取所有单词

转载 作者:行者123 更新时间:2023-11-29 02:00:37 26 4
gpt4 key购买 nike

我有一个包含文本字段的表格。在那些字段中,我存储文本。根据行的不同,每个字段中大约有 20 到 50 个句子。我正在用 HTML 和 PHP 制作一个自动完成的 HTML 对象,我想开始输入单词的开头,然后数据库返回包含这些单词的句子(如 Microsoft Office 2007/2010 导航 Pane )。

我需要 mysql 将这些单词或句子作为单独的结果返回,以便我可以进一步操作它们。

例子:

--------------------------------------------------------------------
| id | title |content |
--------------------------------------------------------------------
1 | test 1 | PHP is a very nice language and has nice features.
2 | test 2 | Spain is a nice country to visit and has nice language.
3 | test 3 | Perl isn\'t as nice a language as PHP.

我需要 mysql 查询返回以下不同的结果:

1,"nice language"
1,"nice features"
2,"nice country"
2,"nice langugage"
3,"nicea a language"

这是我的 sql 查询:

SELECT id, SUBSTR(content,POSITION('nice' IN content),50)
FROM entries
MATCH (title,entry) AGAINST ('nice' WITH QUERY EXPANSION)

最佳答案

新答案

OP 实际上要求与 无关和 - 他的问题涉及直接在 MySQL 中进行字符串操作。

字符串操作并不是 DBMS 的主要关注点。在处理流动文本意义上的“单词”时,需要大量逻辑来确定下一个单词边界的位置,并且您不希望您的数据库真的这样做。此外,为此编写的任何查询都可能难以阅读。

这完全取决于您在做什么,但很可能只有数据库的方法会更慢,因为会有更多的函数调用:SQL 函数非常有限。

对于可重用性和最佳实践,如果您想在将来更改数据库以使用 MongoDB 怎么办?您需要重写整个该死的笨拙查询。

不,我的建议是使用标准 MySQL 将整个值提取到 PHP 中,然后将其放入 PCRE,非常简单的正则表达式,完成工作。最好显示您在 PHP 代码中实际执行的操作,因为它更能“揭示意图”。

开发人员至少有 33% 的工作是为工作选择合适的工具。 PHP 是本例中的正确工具。

原始答案

您已经包含了标签 ,所以我猜测(尽管您的问题需要对此进行更多说明)您显然希望此“自动完成”在客户端运行。因此,您必须首先将数据从服务器端获取到客户端

Twitter Bootstrap 有一个非常酷的东西叫做 Typeahead .这使用 JavaScript 来执行(我认为)您需要的:该页面上的示例显示了如何键入国家/地区,它会为您自动完成。它看起来像这样:

enter image description here

你如何让这个工作?首先包含所需的 JavaScript 文件,然后编写您的 HTML。

这里有一些来自 Bootstrap 页面的源代码,因此您可以看到它是如何工作的:

<input type="text" data-provide="typeahead" data-items="4" data-source='["Alabama","Alaska","Arizona","Arkansas","California"]'>

你能看出 data-source 属性是如何为 typeahead 提供你想要的信息的吗?您想要连接到 MySQL,获取您的数据,并将这些数据推送到 data-source 数组中以便 JavaScript 使用,如上所述。

因此,在您的页面加载时,您连接到 MySQL,然后从数据库中提取您希望“自动完成”的所有相关字符串。然后,您将这些作为 typeahead 的新数据属性,仅此而已!

--

编辑:twitter bootstrap 的 typeahead 有一个分支 that allows AJAX calls ,因此您可以使用它来异步执行数据检索(如果您能搞清楚,我会推荐这种方法)。

关于mysql - 从mysql中的文本字段中提取所有单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15943881/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com