gpt4 book ai didi

php - mysql多列搜索

转载 作者:可可西里 更新时间:2023-11-01 07:06:48 24 4
gpt4 key购买 nike

我有一个这样的表:

+-------------------+---------------+
| description | colour |
+-------------------+---------------+
| Macrame Dress | Washed Black |
| Darcelle Gilet | Dirty Shellac |
| Darcelle Cardigan | Washed Black |
| Let It Rot Vest | Optic White |
| Let It Rot Crew | Washed Black |
| Let It Rot Crew | Optic White |
| Battalion Short | Somme |
| Seine Dress | Washed Black |
| Seine Dress | Cocomotion |
| Odette V-neck | Linen Marl |
+-------------------+---------------+
我想在其中搜索“黑色连衣裙”,它只返回第 1 和第 8 行。如果我输入“黑色”,它将返回第 1、3、5 和 8 行。连衣裙应该返回第 1、8 和 9 行。

谁能想出一个非常优雅、漂亮的 sql,它可以接受任意数量的搜索词并返回最简洁的结果集。我可以想出一些非常丑陋的方法来做到这一点,但它们会破坏我的业力。

最佳答案

我能想到的唯一不错解决方案(业力方面)涉及使用 FULLTEXT指数。这将允许您使用这样的查询:

SELECT * FROM mytable
WHERE MATCH (description,color) AGAINST ('black dress');

不幸的是,如果我没记错的话,FULLTEXT 索引需要 MyISAM 表类型。

编辑

我怀疑这是否是您要查找的内容,但为了便于讨论,让我添加它。您可以将您的数据复制到一个临时的 MyISAM 表中,然后对其进行全文搜索:

CREATE TEMPORARY TABLE mytmptable ENGINE=MyIsam SELECT * FROM mytable;
ALTER TABLE mytmptable ADD FULLTEXT KEY (description,color);
SELECT * FROM mytmptable WHERE MATCH (description,color) AGAINST ('black dress');

关于php - mysql多列搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/531628/

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