gpt4 book ai didi

mysql - 选择任何字段中包含字符串大小写的所有行

转载 作者:行者123 更新时间:2023-11-29 12:58:28 27 4
gpt4 key购买 nike

我有一个名为 main 的 mysql 表,我想选择任何字段中包含字符串的所有行。

并非所有字段都是 varchar。

我为现场硬件执行此操作,但我希望能够在所有字段中搜索,并且如果可能的话不指定它们的名称,因为现在有 12 个字段,并且它们的数量可能会增加。

SELECT * FROM main WHERE hardware LIKE "%string%"

编辑:

我将在 PHP 中执行此操作基本上我想做一些这样的事情

SELECT * FROM main WHERE at_least_one_field LIKE "%string%"

最佳答案

正如 Ejay 的评论中提到的,全文搜索将是最好的方法。我没有意识到从 5.6 开始全文就可以在 InnoDB 表上工作了。

如果您无法使用全文搜索,则以下内容适用于较小的数据集,但根本无法很好地扩展。

可能不是最有效的方法,但是创建一个将所有不同字段联合在一起的 View 怎么样?

CREATE view searchTerms ...
SELECT id, field1 as SearchValue FROM main
UNION
SELECT id, field2 from main
... etc

然后将 View 链接到主表

SELECT m.* 
FROM main m
LEFT JOIN searchTerms s ON m.id = s.id
WHERE s.SearchValue like '%stringToSearch%';

这是一个 sql fiddle 的链接,demonstrates我正在展示什么。

关于mysql - 选择任何字段中包含字符串大小写的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23686426/

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