gpt4 book ai didi

mysql - SQL 特定语句查询

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:03 25 4
gpt4 key购买 nike

我正在对数据库进行相当大的查询,由于某种原因,它返回了许多与我的任何搜索词都不匹配的结果。它似乎也复制了我的结果,所以我得到了相同的 SQL 项 16 次。有什么想法吗?

SELECT a.*
FROM
j20e8_datsogallery AS a,
j20e8_datsogallery_tags AS t
WHERE
(a.id LIKE "%bear%" OR
a.imgtitle LIKE "%bear%" OR
a.imgtext LIKE "%bear%" OR
a.imgauthor LIKE "%bear%" OR
t.tag LIKE "%bear%")
ORDER BY a.id DESC
LIMIT 0, 16

我认为这可能与 LIKE %term% 部分有关,但根本无法使其工作。

最佳答案

我会确保您符合加入条件。否则你最终会得到一个完整的连接,或者更糟的是,一个来自交叉连接的笛卡尔积。沿着这些线的东西:

SELECT a.*
FROM
j20e8_datsogallery AS a
JOIN j20e8_datsogallery_tags AS t ON a.ID = t.GalleryID
WHERE
...
ORDER BY a.id DESC
LIMIT 0, 16

此外,考虑使用 FULLTEXT INDEX ...它可以将所有这些列合并到一个索引中,并使搜索所有这些列非常有用。

MySql 中的 FULLTEXT INDEX 可用于将几个不同的列“组合”成一大堆文本,然后您可以使用 MATCH()反对搜索词。

要创建一个FULLTEXT INDEX,您可以简单地使用CREATE INDEX 语法记录here .

CREATE FULLTEXT INDEX FDX_datsogallery 
ON j20e3_datsogallery ( id, imgtitle, imgtext, imgauthor )

然后您可以在包含 MATCH() ... AGAINST 语句的查询中使用它,记录在案 here :

SELECT a.*
FROM j20e8_datsogallery AS a
WHERE MATCH( id, imgtitle, imgtext, imgauthor ) AGAINST( 'bear' )

关于mysql - SQL 特定语句查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18492876/

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