gpt4 book ai didi

MySQL 针对关键字表进行搜索

转载 作者:行者123 更新时间:2023-11-29 23:36:39 25 4
gpt4 key购买 nike

我一直在努力寻找正确的方法来格式化我的 mysql 表达式以匹配相关的关键字表。

表格设置如下:

photos: id,path,various exif data
photos_to_tags: photos_id,photos_tags_id
photo_tags: id,name

SQL语句如下:

SELECT DISTINCT (photos.path),photos.name, 
MATCH (photo_tags.name) AGAINST('+bamboo* +flooring* ') AS relevance
FROM photo_tags
LEFT JOIN photos_to_tags ON photo_tags_id = photo_tags.id
LEFT JOIN photos ON photos.id = photos_id
WHERE (MATCH (photo_tags.name) AGAINST('+bamboo* +flooring* ' IN BOOLEAN MODE))
OR photo_tags.name = 'bamboo flooring'
GROUP BY path
ORDER BY relevance
LIMIT 0,24;

除非确切的短语“bamboo Flooring”是一个标签,否则它不会返回结果。如果“bamboo”是一个标签,“flooring”是一个标签,那么它不会返回结果。

进一步描述问题的一些详细说明:这是针对承包商的网站的。他有数百张工作照片。他可能有30张屋顶照片,有些屋顶照片可能是钢屋顶,有些可能是雪松摇、一生等等。

关键字标签位于单独的表格中,它们可用于列出屋顶的所有照片,或者搜索可用于进一步仅隔离钢屋顶,或者可能是具有修剪细节的钢屋顶等。

可能还有另一种方式来编写这个查询——我还没有找到返回相关结果的好方法。例如,如果有人搜索终身屋顶,他们不想看到钢屋顶照片。

谢谢!

最佳答案

“除非确切的短语“bamboo Flooring”是一个标签,否则它不会返回结果”-

是的,当您在两者前面写下“+”(这意味着它必须存在)时,它不会返回。读 Mysql Devsite了解它是如何工作的。

你也可以这样写:对于没有“bamboo”标签的照片将不会返回任何结果。

SELECT DISTINCT (photos.path),photos.name, FROM photo_tags 
INNER JOIN photos_to_tags ON photo_tags_id = photo_tags.id INNER JOIN
photos ONphotos.id=photos_id WHERE photo_tags.name LIKE '%bamboo%' // 'bamboo' tag should be there or the search text..
GROUP BY path , photos.name
LIMIT 0,24;

关于MySQL 针对关键字表进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26343365/

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