在表中搜索动词+名词

信息

我有一张列出动词和形容词的表格。我还有一张列出名词的表格。我的第三个表是我们的搜索字段。

我想做什么?

我想在我们的搜索字段表中搜索动词+形容词。所以我想找到动词+名词形容词+名词

例子

我们的搜索字段表中有记录:

  1. 筑墙

  2. 红树

  3. 指望你

  4. 购买苹果

结论

所以我的动词+形容词表和名词表中有这些单词(build,wall,red,tree,purchase,apple,count,you)我如何通过我的名词和形容词+动词表找到它们以正确的顺序?我所说的正确顺序是应该是动词+名词形容词+名词

Ps:你知道有时我们需要英语介词。但我不介意他们进行搜索。不介意介词,这些类型的结果对我来说是正确的:

动词 + (任何字符)+ 名词

形容词+(任何字符)+名词

我试过什么?

好吧,我尝试过sql查询:

SELECT * FROM adjectiveVerbList INNER JOIN searchField ON searchField.text LIKE CONCAT('%',adjectiveVerbList.word, '%')

但正如您所看到的,这个查询只是一个简单的 like 查询。这是行不通的。顺便说一句,我可以用 php 或只是一个 sql 查询来完成它,这并不重要。


慕妹3242003
浏览 94回答 1
1回答

翻翻过去那场雪

更改为您的对象名称。我将数据放入前面的WITH子句中,我将标记“真实”查询的开始位置。不过,您没有指定您想要的输出,所以我只是假设了一些内容。我使用了与您的第一个搜索短语相匹配的数据。WITH-- input ....phrases(id,phrase) AS (          SELECT 1,'buildawall'UNION ALL SELECT 2,'redtree'UNION ALL SELECT 3,'countonyou'UNION ALL SELECT 4,'purchaseanapple'),adjectiveverblist (id,word,type) AS (          SELECT 1,'build'    ,'verb'UNION ALL SELECT 2,'red'      ,'adjective'UNION ALL SELECT 3,'count'    ,'verb'UNION ALL SELECT 4,'purchase' ,'verb'),nounlist(id,word) AS (          SELECT 1,'wall'UNION ALL SELECT 2,'tree'UNION ALL SELECT 3,'you'UNION ALL SELECT 4,'apple')-- end of input - real query starts here ...SELECT  phrase, av.word AS adjective_verb, av.type AS av_type, n.word  AS nounFROM phrasesJOIN adjectiveverblist av ON phrase LIKE '%' + av.word + '%'JOIN nounlist n ON phrase LIKE '%' + n.word + '%';-- out      phrase      | adjective_verb |  av_type  | noun  -- out -----------------+----------------+-----------+--------- out  redtree         | red            | adjective | tree-- out  buildawall      | build          | verb      | wall-- out  countonyou      | count          | verb      | you-- out  purchaseanapple | purchase       | verb      | apple
打开App,查看更多内容
随时随地看视频慕课网APP