为了账号安全,请及时绑定邮箱和手机立即绑定

在表中搜索动词+名词

在表中搜索动词+名词

PHP
慕妹3242003 2023-10-22 21:03:18
信息我有一张列出动词和形容词的表格。我还有一张列出名词的表格。我的第三个表是我们的搜索字段。我想做什么?我想在我们的搜索字段表中搜索动词+形容词。所以我想找到动词+名词或形容词+名词例子我们的搜索字段表中有记录:筑墙红树指望你购买苹果结论所以我的动词+形容词表和名词表中有这些单词(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 查询来完成它,这并不重要。
查看完整描述

1 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

更改为您的对象名称。我将数据放入前面的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 noun

FROM phrases

JOIN 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




查看完整回答
反对 回复 2023-10-22
  • 1 回答
  • 0 关注
  • 60 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信